第3章 MATLAB与excel数据连结及绘图
如何将Excel中的数据导入MATLAB并在MATLAB中画出图像

首先Excel必须是office的(WPS的不可以,MATLAB不能识别),在MATLAB中使用命令xlsread读取Excel中的数据到MATLAB里,如下所示:[number,txt,raw]=xlsread(''),此时读取的文件须在MATLAB默认路径下,命令具体用法及参数含义可直接用help命令在MATLAB中查找。
读取的数据界面如下:
1.如何将Excel中的数据导入MATLAB并在MATLAB中画出图像?
首先Excel必须是office的(WPS的不可以,MATLAB不能识别),file-Import Data-在工作路径下找到需要导入的文件(图3)-点击打开(图4)-点击next-点击finish-导入成功-在workspace中看到图5(导入的数据)。
至此数据导入成功。
下面是如何利用该数据绘图:
法一:双击workspace中的data打开如图6,选中要画图的数据如图7(数据范围可以根据需要随便选择),点击上方的plot(data(1:874,1:2),画出图像如图8,并且在工作空间中自动显示画图命令。
法二:直接在工作空间中写画图命令。
图3
图4
图5图6图7图8。
Matlab中使用Excel数据

Matlab中使用Excel資料收藏% Open Excel, add workbook, change active worksheet,% get/put array, save, and close% First open an Excel Server%打開一個Excel操作物件Excel = actxserver('Excel.Application');%使Excel物件可見,即打開Excel視窗,實際應用時設置其為不可見的set(Excel, 'Visible', 1);% Insert a new workbook%創建工作本組物件Workbooks = Excel.Workbooks;%添加一個工作本Workbook = invoke(Workbooks, 'Add');% Make the second sheet active%獲取當前活躍工作本的表單組,一個工作本共有3個表單(sheets)Sheets = Excel.ActiveWorkBook.Sheets;%獲取表單組中的一個表單sheet2 = get(Sheets, 'Item', 2);%啟動該表單invoke(sheet2, 'Activate');% Get a handle to the active sheet%獲取當前活躍表單的控制碼Activesheet = Excel.Activesheet;% Put a MATLAB array into Excel%向表單中寫入資料A = [1 2; 3 4];%設置寫到Excel中的範圍ActivesheetRange = get(Activesheet,'Range','A1:B2');%寫入set(ActivesheetRange, 'Value', A);% Get back a range. It will be a cell array,% since the cell range can% contain different types of data.%讀會資料塊Range = get(Activesheet, 'Range', 'A1:B2');%獲取資料B = Range.value;% Convert to a double matrix. The cell array must contain only scalars.%B現在是符合矩陣,將其轉換成數值矩陣B = reshape([B{:}], size(B));% Now save the workbook%保存檔,可以寫絕對路徑,相對路徑總是保存在我的文件中invoke(Workbook, 'SaveAs', 'myfile.xls');% To avoid saving the workbook and being prompted to do so,% uncomment the following code.% Workbook.Saved = 1;% invoke(Workbook, 'Close');% Quit Excel%退出Excelinvoke(Excel, 'Quit');% End process%結束Excel進程delete(Excel);function UserRange = ExcelRangeCalculate(data,begin)% 計算資料矩陣所佔用的儲存格範圍% UserRange = ExcelRangeCalculate(data,begin) 輸入參數data用來指定要寫入的% 資料矩陣,begin用來指定寫入的初始位置(左上角位置)。
如何将Excel中的数据导入MATLAB并在MATLAB中画出图象

1.如何将Excel中的数据在MATLAB界面下显示出来:
首先Excel必须是office的(WPS的不可以,MATLAB不能识别),在MATLAB中使用命令xlsread读取Excel中的数据到MATLAB里,如下所示:[number,txt,raw]=xlsread('noise.xlsx'),此
时读取的文件须在MATLAB默认路径下,命令具体用法及参数含
义可直接用help命令在MATLAB中查找。
读取的数据界面如下:
2.如何将Excel中的数据导入MATLAB并在MATLAB中画出图像?
首先Excel必须是office的(WPS的不可以,MATLAB不能识
别),file-Import Data-在工作路径下找到需要导入的文件(图3)-点击打开(图4)-点击next-点击finish-导入成功-在workspace中看到图5(导入的数据)。
至此数据导入成功。
下面是如何利用该数据绘图:
法一:双击workspace中的data打开如图6,选中要画图的数据如图7(数据范围可以根据需要随便选择),点击上方的
plot(data(1:874,1:2),画出图像如图8,并且在工作空间中自动显示画图命令。
法二:直接在工作空间中写画图命令。
图3
图4
图5
图6
图7
图8。
如何将Excel中的数据导入MATLAB并在MATLAB中画出图像

1.如何将Excel中的数据在MATLAB界面下显示出来:
首先Excel必须是office的(WPS的不可以,MATLAB不能识别),在MATLAB中使用命令xlsread读取Excel中的数据到MATLAB里,如下所示:[number,txt,raw]=xlsread('noise.xlsx'),此时读取的文件须在MATLAB默认路径下,命令具体用法及参数含义可直接用help命令在MATLAB中查找。
读取的数据界面如下:
2.如何将Excel中的数据导入MATLAB并在MATLAB中画出图像?
首先Excel必须是office的(WPS的不可以,MATLAB不能识别),file-Import Data-在工作路径下找到需要导入的文件(图3)-点击打开
(图4)-点击next-点击finish-导入成功-在workspace中看到图5(导入的数据)。
至此数据导入成功。
下面是如何利用该数据绘图:法一:双击workspace中的data打开如图6,选中要画图的数据如图7(数据范围可以根据需要随便选择),点击上方的plot(data(1:874,1:2),画出图像如图8,并且在工作空间中自动显示画图命令。
法二:直接在工作空间中写画图命令。
图3
图4
图5
图6
图7
图8。
如何将Excel中的数据导入MATLAB并在MATLAB中画出图像

1. 如何将Excel中的数据在MATLA界面下显示出来:首先Excel必须是office 的(WPS勺不可以,MATLA不能识别),在MATLA中使用命令xlsread读取Excel中的数据到MATLA里,如下所示:[number,txt,raw]=xlsread('noise.xlsx'),此时读取的文件须在MATLA默认路径下,命令具体用法及参数含义可直接用help 命令在MATLA中查找。
读取的数据界面如下:[0.2i60][0.24SO][0.2500][0.2520][0.2540][0.2560][0.2580][0.25Q0][0.2620][0. 2640][0. 2660][0.2680][0.2700][0.2720][0.2740][0. 2760][23.6000][ 28][30.4000]125-2000][ 18][19.2000][2L 2000][17. 20Q0][16.SOOO][17.6000][13.6000][11.2000][13.6000][13.2000][ 10][12.4000]2. 如何将Excel中的数据导入MATLA并在MATLA中画出图像?首先Excel必须是office 的(WPS勺不可以,MATLA不能识别),file-Import Data- 在工作路径下找到需要导入的文件(图3)-点击打开(图4)-点击next-点击finish- 导入成功-在workspace中看到图5 (导入的数据)。
至此数据导入成功。
下面是如何利用该数据绘图:法一:双击workspace中的data打开如图6,选中要画图的数据如图7 (数据范围可以根据需要随便选择),点击上方的plot(data(1:874,1:2),画出图像如图8,并且在工作空间中自动显示画图命令。
法二:直接在工作空间中写画图命令。
>> [number, txt raw!=zlsr*ad C noise.xlsz J)riunber 二0.246023. 60000.24SC 2& 00000.2500 30. 40000. 2520 25.20000. 2E40 18. 00000.2560 2000Di 2580 21. 20000.2600 17.20000. 2620 16.30000. 2640 17. 60000. 13. 60000* 26SA 1],20000. 2700 13. SQ00Import Data査找范圉(X):库计算机网貉名称'悸改日期,,noise.rriat2014/3/1S 19:181^gnoisenKlsx2014/3/1& 19:01I HKTIAB ▼> ®文件名曲):iriOL XISX文件类型⑴;Recognized Filww取消 |JJWorkspace圄■鱼1鲂I^Lr Select data ...〒Name *田[甌Value<874x2 double* rrrCommand Window■+* □ ? X>> plol (datadia?^ I. = 2), J DisplayMafte J p J dataCl;874? 1;2)a ? J YDataSource 1/ data(i:B74? 1:2^ ) .f igurt (ecf)九—K —图81 f 4New to MATLAB? Watch thi$ Sdg see 口旳口轧 or read Getting 5t^rt 亡cLNew Parallel D”ktq 因❼Ctirrent F file Edit 0ew Ins-ert lo&ls Desktop Window Help□ U 矗B |輿耳U 物穏摇TO □囲I ■口IXCommaHd Window。
Matlab中使用Excel数据

Matlab中使用Excel数据收藏Problem DescriptionI am trying to control Excel from MATLAB using ActiveX. Are there any ex amples that show how to use the ActiveX automation interface from Excel to do this?Solution:Most of the functionality that you get from ActiveX is dependent on the ob ject model, which the external application implements. Consequently, we a re usually unable tp provide much information about the functions that yo u need to use in the remote application to perform a particular function. We do, however, have an example that shows how to do perform common functions in Excel.We also recommend that you become more familiar with the Excel object model in order to better use Excel's ActiveX automation interface from MA TLAB. You can find more information on this interface by selecting the "Mi crosoft Excel Visual Basic Reference" topic in the Microsoft Excel Help Topi c dialog. This topic area contains a searchable description of Excel method s and properties.The following example demonstrates how to insert MATLAB data into Excel. It also shows how to extract some data from Excel into MATLAB. For mor e information, refer to the individual comments for each code segment.% Open Excel, add workbook, change active worksheet,% get/put array, save, and close% First open an Excel Server%打开一个Excel操作对象Excel = actxserver('Excel.Application');%使Excel对象可见,即打开Excel窗口,实际应用时设置其为不可见的set(Excel, 'Visible', 1);% Insert a new workbook%创建工作本组对象Workbooks = Excel.Workbooks;%添加一个工作本Workbook = invoke(Workbooks, 'Add');% Make the second sheet active%获取当前活跃工作本的表单组,一个工作本共有3个表单(sheets)Sheets = Excel.ActiveWorkBook.Sheets;%获取表单组中的一个表单sheet2 = get(Sheets, 'Item', 2);%激活该表单invoke(sheet2, 'Activate');% Get a handle to the active sheet%获取当前活跃表单的句柄Activesheet = Excel.Activesheet;% Put a MATLAB array into Excel%向表单中写入数据A = [1 2; 3 4];%设置写到Excel中的范围ActivesheetRange = get(Activesheet,'Range','A1:B2');%写入set(ActivesheetRange, 'Value', A);% Get back a range. It will be a cell array,% since the cell range can% contain different types of data.%读会数据块Range = get(Activesheet, 'Range', 'A1:B2');%获取数据B = Range.value;% Convert to a double matrix. The cell array must contain only scalar s.%B现在是符合矩阵,将其转换成数值矩阵B = reshape([B{:}], size(B));% Now save the workbook%保存文件,可以写绝对路径,相对路径总是保存在我的文档中invoke(Workbook, 'SaveAs', 'myfile.xls');% To avoid saving the workbook and being prompted to do so,% uncomment the following code.% Workbook.Saved = 1;% invoke(Workbook, 'Close');% Quit Excel%退出Excelinvoke(Excel, 'Quit');% End process%结束Excel进程delete(Excel);There are several options for connecting MATLAB with Excel. For an examp le that shows how to connect MATLAB with Excel using Excel Link, please refer to the following URL:/support/solutions/data/27338.shtmlFor an example that shows how to connect MATLAB with Excel using DDE, please refer to the following URL:/support/solutions/data/31072.shtmlFor information on how to use the XLSREAD function to read .xls files, ple ase refer to the following URL:/access/helpdesk/help/techdoc/ref/xlsread.shtml。
《金融数量分析 》第3章 MATLAB与Excel文件的数据交换

回到加载宏对话框,接着选择Excel Link2.3 for use with MATLAB 选项,单击“确 定”按钮,如图1所示。
若Excel的左上方出现start matlab、putmatrix、getmatrix、evalstring 等选项,说明 ExcelLink加载成功,如图2所示。
2. data= xlsread(filename, sheet, range)
输入参数: Ø filename:目标文件地址(若文件在MATLAB当前的工作目录中, filename为“文件名”,如果文件不在MATLAB当前的工作目录中, filename为“文件路径\文件名”); Ø sheet:数据表名称,例如Excel默认表名称sheet1; Ø range:数据所在位置,例如A1、B13等。
3.1 案例背景
Excel是一款非常优秀的通用表格软件,在学习、工作与科研中 大量的数据可能都是以Excel表格的方式存储的。Excel在矩阵计算、 数据拟合与优化算法等方面的功能尚不足,Excel与MATLAB相结合 是处理复杂数据问题的有效方法。
如何利用MATLAB强大的数值计算功能处理Excel中的数据,首 要解决的问题就是如何将Excel中的数据导入MATLAB中或将 MATLAB数值计算的结果转存入Excel中。
3. 5.2 smoothts函数
smoothts函数的输入参数input是一个金融时间序列对象或行导向矩阵,其中 金融时间序列对象是MATLAB中由ascii2fts或fints函数所创建的一种对象,行导 向矩阵是指用行表示观测数据集的矩阵,若input是一个行导向矩阵,input的每 一行都是一个单独的观测集。
输出参数: Ø data: 数值数据。
excel和matlab链接

Matlab具有强大的数据计算和处理、图形显示能力;Excel则具有强大的表格处理同时也有强大的数据统计和显示能力。
在科研过程中常会同时使用这两款软件,如果实现Matlab和Excel的链接,可以满足实际要求。
实现Matlab和Excel的混合编程主要有以下几种方法:1、利用Excel Link(最常用方法)Excel Link是一个在Windows环境下实现Excel与Matlab进行链接的插件。
通过连接Excel和Matlab,实现Excel和Matlab的数据共享。
使用Excel Link 时,不脱离Excel环境直接在Excel中调用Matlab函数。
具体可参见Matlab帮助或Excel Link手册。
2、利用Excel生成器(Matlab作COM服务器)COM(通用对象模型)是一组面向对象的技术和工具的集合。
利用Matlab提供的COM生成器,把Matlab的算法程序生成组件,这些组件可作为独立的COM对象被Excel的Visual Basic使用。
具体可参见Matlab COM Builder或者Matlab Builder for Excel工具。
3、利用Active X控制(Matlab作COM客户端)ActiveX是 Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型。
主要利用Matlab中的actxserver函数:actxserver('progid');progid为程序的ActiveX部件的标识符,针对不同的程序有不同的progid。
如actxserver('Excel.Application'),然后可利用invoke函数进行一系列操作。
4、文件导入方法利用xlsread和xlswrite函数读写Excel文件(也可用fopen、fread和fwrite函数),然后进行数据处理操作。
另外,还可以通过菜单File->Import data 方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设置曲线样式
plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2…)
将按顺序分别画出由三参数定Xi,Yi,LineSpeci 的线条。
其中参数LineSpeci指明了线条的类型,标记 符号,和画线用的颜色。
例3.2.8 采用不同颜色、不同线形以及不同标记 在同一图形中画出y=cos(x),y=sin(x/2)exp{x/100}和y=sin(x-)的图像
1、ExcelLink连接管理函数
(1) Matlabinit 该函数只能在宏子例程中使用。初始化 ExcelLink和启动Matlab进程。只有在 MLAutoStart函数中使用“no”参数,才需要 手动使用Matlabinit来初始化ExcelLink和启 动Matlab进程, 如果使用参数“yes”,则Matlabinit是自动执 行的。 使用语法:Matlabinit
答案见ex3_2_5.m
例3.2.6画出S&P从2008年1月到 2008年10.20收盘价及其对数收 益率的时间图。
答案见ex3_2_6.m
图形保持
hold on/off命令控制是保持原有图形还是刷 新原有图形,不带参数的hold命令在两种状 态之间进行切换。
例3.2.7 采用图形保持,在同一坐标内绘制 曲线y1=0.2e-0.5xcos(4πx) 和y2=2e0.5xcos(πx)。 答案见ex3_2_7.m
金融数值计算与应用软件
--MATLAB
王辉 中央财经大学金融学院
E-mail :xiaohuipk@
第3章 MATLAB与Excel数据连 接及绘图
3.1 MATLAB与Excel数据连接 3.1.1 MATLAB和Excel的接口安装:. Excel Link的安
装和和设置 Excel Link的设置
(3)横坐标是时间,纵坐标是价格,画出其收 盘价的时间图
答案见ex3_2_3.m
含多个输入参数的plot函数
调 用格式为: plot(x1,y1,x2,y2,…,xn,yn) (1)当输入参数都为向量时,x1和y1,x2和y2,…,
xn和yn分别组成一组向量对,每一组向量对的长度 可以不同。 (2) 当输入参数有矩阵形式时,配对的x,y按对应列元素 为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列 数。
在原来程序的基础上
plot(mydate,sp08(:,3),'y-*',mydate,sp08(:,3),'m-.')
如果用户使用MATLAB中的日期数计算, 常数 693960起关键作用: EXCEL日期数加上它进 入MATLAB,或从MATLAB 日期数中减去它进 入EXCEL
2、ExcelLink数据管理函数
(1) matlabfcn 根据给定的Excel数据执行Matlab命令。 在工作表中使用时的语法: matlabfcn(command, inputs)
(3) MLClose
终止Matlab进程并删除Matlab工作空间的所 有变量。并通知Excel,Matlab不再运行。 在工作表中的使用语法: MLClose() 在宏中进程
如果Matlab进程已经启动,则MLOpen函数不 进行任何操作。在使用MLClose关闭Matlab 进程后使用MLOpen来重新启动Matlab。 在工作表中的使用语法: MLOpen() 在宏中的使用语法: MLOpen
4. xlswrite与xlsread
➢ MATLAB提供的函数xlswrite,具有将 MATLAB中的数据写入EXCEL的功能。
➢ MATLAB提供的函数xlsread,具有将EXCEL 中的数据读入MATLAB的功能。
xlswrite的调用方式
xlswrite('filename', M) xlswrite('filename', M, sheet) xlswrite('filename', M, 'range') xlswrite('filename', M, sheet, 'range')
xlswrite的输入参数
filename % EXCEL文件名
M
% MATLAB工作空间中的大小为m×n的数
组,该数组可以是字符型的,数值型的也可以是单元
数组,其中m < 65536且n < 256
sheet % EXCEL中的工作簿
range % EXCEL工作簿中的数据区域
例如:将一个向量写入EXCEL文件v.xls,在MATLAB中 执行如下命令:xlswrite('v', [1 5 -8 3.9 0])
(3) MLAppendMatrix
将Excel工作表中的数据追加到Matlab中指 定的矩阵中如果该矩阵不存在,则创建矩阵。 在工作表中使用的语法: MLAppendMatrix(var_name,mdat)
注意要追加的数据维数要和原矩阵中的维数 相匹配,否则出错
假设matlab中,矩阵a是个2行3 列的矩阵,如下图:
启动Excel,选择菜单“工具”项下的“加载宏” 项,弹出如下对话框
若该项不存在,则通过浏览目录,在目录 MATLAB/toolbox/exlink下找到 excllink.xla文件
在Excel中多了一个Excel Link工 具条,如下图示:
3.1.2 . ExcelLink管理函数 手动启动matlab
要不想在每次启动时都启动matlab,则可以在电子表 格中或函数输入框中输入以下命令 =MLAutoStart(“no”)
手动启动matlab
(1)在excel电子表格中输入命令=MLOpen()
(2) 利用excel的宏工具,在宏对话框中输入Matlabinit, 然后单击执行按钮。
(3)按左上按钮"startmatlab"。
具有两个纵坐标标度的图形
调用格式为: plotyy(x1,y1,x2,y2) 其中x1,y1对应一条曲线,x2,y2对应另一条
曲线。横坐标的标度相同,纵坐标有两个, 左纵坐标用于x1,y1数据对,右纵坐标用于 x2,y2数据对。
例3.2.5 用不同标度在同一坐标内 绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。
'range')
xlsread的输入与输出参数
输入参数:
filename % EXCEL文件名
sheet % EXCEL中的工作簿名
range % EXCEL工作簿中的数据区域
输出参数:
num %读入Excel文件数据
txt
%保存文本内容
例 3.1.2 将m.xls复制到matlab当 前工作目录下,并在matlab命令窗 口输入以下命令:
例3.1.1 把元胞数组d = {'Time', 'Temp'; 12 98; 13 99; 14 97}写入到 EXCEL文件m.xls的一个规定的工作簿 当中。
答案见ex3_1_1.m
xlsread的调用方式
num = xlsread(filename) num = xlsread(filename, -1) num = xlsread(filename, sheet) num = xlsread(filename, 'range') num = xlsread(filename, sheet, 'range') [num, txt] = xlsread(filename, sheet,
3、当输入参数是复数矩阵时,则按列分别以元素实部和 虚部为横、纵坐标绘制多条曲线。
例3.2.3 画出S&P从2008年1月到 2008年10.20开盘价、最高价、 最低价和收盘价的时间图。
(1)横坐标是观测个数,纵坐标是价格,将四种 价格画在一幅图中
(2)横坐标是时间,纵坐标是价格,将四种价 格画在一幅图中
plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标和y
坐标数据。
二维绘图的例子
例3.2.1 在0≤x≤2区间内,绘制曲线 y=2e-0.5xcos(4πx)
答案见ex3_2_1.m
例3.2.2 假如你的帐户中有一笔10年的 $1000存款,年利率为r,那么10年后你的 钱数与利率的关系是,画出该函数的图像。
(2) MLAutoStart
设置自动启动Matlab和ExcelLink。 在工作表中的使用语法: MLAutoStart("yes") MLAutoStart("no") 使用“yes”参数,则当Excel启动时,自动启 动Matlab和ExcelLink;如果使用参数 “no”,则当Excel启动时,不启动Matlab和 ExcelLink。如果在此之前它们已经启动,则 无任何影响。
例3.2.4 分析下列程序绘制的曲线。
x1=linspace(0,2*pi,100); x2=linspace(0,3*pi,100); x3=linspace(0,4*pi,100); y1=sin(x1); y2=1+sin(x2); y3=2+sin(x3); x=[x1;x2;x3]'; y=[y1;y2;y3]'; plot(x,y,x1,y1-1)
答案见ex3_1_2.m
3.2 MATLAB绘图 3.2.1 二维数据曲线图
1、绘制单根二维曲线 plot函数最简单的调用格式是只包含一个输入参数:
plot(x) 在这种情况下,当x是实向量时,以该向量元素的下标
为横坐标,元素值为纵坐标画出一条连续曲线,这 实际上是绘制折线图。 plot函数的基本调用格式为: