当前位置:文档之家› 第3章 MATLAB与excel数据连结及绘图

第3章 MATLAB与excel数据连结及绘图


设置曲线样式
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函数的基本调用格式为:
相关主题