excel中的数据导入matlab中
将excel中的数据导入matlab教程的方法步骤
将excel中的数据导入matlab教程的方法步骤在Excel中经常录入好数据以后都会有导入到matlab中去,这个功能也比较常用,如果还不会的朋友不妨学习一下。
接下来是店铺为大家带来的如何将excel中的数据导入matlab的教程,希望对你有用。
将excel中的数据导入matlab的教程Excel导入matlab步骤1:将待导入的矩阵结构的数据录入Excel 中,录入时注意行列要跟原矩阵一一对应Excel导入matlab步骤2:录入完以后保存数据,为了后续步骤使用方便,命名时我们最好把它命名为我们接下来在MATLAB中要引用的变量名(比如在MATLAB中要将该矩阵作为B矩阵参与运算,就可以把它命名为B.xls,xls为文件扩展名)将excel中的数据导入matlab的教程图2Excel导入matlab步骤3:运行MATLAB程序,点击工具栏上的Import Data工具按钮将excel中的数据导入matlab的教程图3Excel导入matlab步骤4:在弹出的“Import Data”对话框中找到前面保存的数据文件(B.xls),“打开”将excel中的数据导入matlab的教程图4Excel导入matlab步骤5:弹出“Import”窗口,在窗口工具栏左侧导入选项中选择“Matrix(矩阵)”,然后点击工具栏右侧的“勾”,导入数据将excel中的数据导入matlab的教程图5Excel导入matlab步骤6:关闭“Import”窗口,回到MATLAB 主程序,在WorkSpace(工作空间)中可以看到刚刚导入矩阵变量,接下来就可以对矩阵进行运算了将excel中的数据导入matlab的教程图6Excel导入matlab步骤7:每次关闭MATLAB程序都会将工作空间中的变量清空,所以如果经常用到该变量,不妨将该变量保存为MAT文件将excel中的数据导入matlab的教程图7将excel中的数据导入matlab的教程图8Excel导入matlab步骤8:这样一来每次打开MATLAB,只需要双击MAT文件便可以将变量导入工作空间将excel中的数据导入matlab的教程图9猜你喜欢:1.怎么将Excel数据导入MATLAB中2.怎么将外来数据导入excel20103.怎么将txt中的数据导入到excel20074.如何利用excel进行数据分析的教程5.如何用excel进行数据分析的教程6.怎么在Excel中输入分数7.怎么实现Excel与ppt2010数据同步。
如何将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文件中的数据
1.读取sheet1中的所有数据
引用的文件名要包括后缀.xls,同时xls文件要位于当前搜索路径中(默认安装目录下work 文件夹中)才可以引用excel数据
默认这些文本以及数字都放在sheet1中,我们将此excel选入当前工作目录(必要步骤),然后再MA TLAB主窗口中输入下面命令:[NUM,TXT,RAW]=xlsread('example'),其中example是你的excel名,这里我所有的数据都在example.xls中。
输入以上命令,回车
NUM返回的是excel中的数据,TXT输出的是文本内容,RAW输出的是未处理数据,这里因为文本占用的矩阵一共是8行6列,所以就输出了如上内容。
一般情况下,我们读取的都是excel中的数据,所以可以直接用[NUM]=xlsread('example'),只输出数据矩阵便可。
2读取指定sheet中的数据
假如我们想读取第二个sheet中的数据,这里请注意:matlab读取excel中的数据是按照sheet在excel中的排放顺序来的,sheet3现在排在第二位,我们输入命令[NUM]=xlsrea d('example',2),回车
3 读取指定单元格中的数据
假设我们读取A3-D7之间的数据,那么我们输入命令[NUM]=xlsread('example',2,'A3:D7'),回车。
如何将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。
《金融数量分析 》第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: 数值数据。
Matlab导入Excel数据
方法二利、用xlsread命令导入Excel数据:
首先需要将Excel文件保存到当前Matlab路径下-->新建m文件-->输入 data=xlsread(filename,sheet,xlRange),其中filename是Excel文件名,sheet是要导入数据所 在的sheet,xlRange是数据表中的范围。
方法三:利用dir命令导数包含字符串的Excel数据:
使用dir命令读入文件名,再用赋值命令得到所要数据。此时导入的file中不
止有数据,还有其他字符串,比如汉字、日期之类数据的三种方法做一下总结 1.打开Matlab; 2.方法一:利用Matlab自带数据导入工具导入数据,选择导入数据 类型; 3方法二:利用xlsread(filename,sheet,xlRange),命令导入数据,要 求Excel文件在当前文件夹路径下; 4.方法三:若要导入的不止有数据还包括其他的字符串,就用 dir(‘*.xlsx’)命令导入一个结构体,在从结构体中取出想要的部分;
Matlab导入Excel数 据
MATLAB导入EXCEL数据的三种方法:
比如数学建模之类的很多地方都需要将Excel中的数据导入Matlab中进行处理。 这里告诉你三种Matlab导入Excel数据的方式。
在电脑桌面双击Matlab图标,进入Matlab,第一次打开Matlab可能需要一段时间, 请耐心等待。一般来说固态硬盘的要比机械硬盘快很多。
方法一:使用Matlab"数据导入"工具导入Excel数据:
1.点击主页-->在变量工具栏找到"数据导入“ 2.找到要导入数据的Excel表左键点击-->打开
MATLAB导入txt和excel文件技巧汇总:批量导入、单个导入
MATLAB导⼊txt和excel⽂件技巧汇总:批量导⼊、单个导⼊在使⽤MATLAB的时候,想必各位⼀定会遇到导⼊数据的问题。
如果需要导⼊的数据其数据量巨⼤的话,那么在MATLAB编辑器中将这些数据复制粘贴进来,显然会在编辑器中占据巨⼤的篇幅,这是不明智的。
⼀般来说储存这些数据的⽂件有两种形式:txt⽂件excel表格针对这两种类型的⽂件,需要使⽤两个不同的函数。
就导⼊txt⽂件来说,个⼈习惯使⽤importdata这个函数。
@⽬录导⼊txt⽂件01 | 导⼊全是数字类型的txt⽂件(⼀)如果导⼊的txt⽂件中,储存的数据全是数字类型的,且同⼀⾏的两个数字之间使⽤空格或者制表符进⾏分隔。
这种形式的txt⽂件如下所⽰。
储存这种形式数据的txt⽂件直接使⽤如下代码即可。
present01=importdata('present01.txt');在MATLAB运⾏之后的结果如下:02 | 导⼊全是数字类型的txt⽂件(⼆)如果数据不像刚才给出的数据那么规整,那么就不能继续使⽤上⾯的代码了如果txt⽂件储存如下的数据:很明显这个txt⽂件,第⼀⾏只有1,第⼆⾏有2和3,第三⾏有4、5、6和7,第四⾏有8、9、10和11,第五⾏有12、13、14和15。
如果我们继续使⽤上⾯的代码,看看能否成功导⼊数据。
present02=importdata('present02.txt');在MATLAB运⾏之后结果如下,是⼀个15⾏1列的矩阵,这个很明显和我们想要的形式不太⼀样。
可以发现前两⾏的数据个数与后三⾏的数据个数不同,所以在实际导⼊的时候需要分开导⼊,这时可以使⽤如下代码导⼊present02.txt⽂件。
filename='present02.txt'; %⽂件名delimiterIn = ' '; %列分隔符headerlinesIn = 2; %读取从第 headerlinesIn+1 ⾏开始的数值数据present02=importdata(filename,delimiterIn,headerlinesIn);dataset=present02.data; %导出的3⾏以后的数据,即3⾏4列的矩阵parameters=present02.textdata; %导出的2⾏以前的数据,即2⾏1列的元胞数组filename是⽂件名delimiterIn是列分隔符,也就是同⼀⾏的两个数据之间是如何分隔的,可以是空格,也可以是制表符,也可以是逗号headerlinesIn表⽰读取从第 headerlinesIn+1 ⾏开始的数值数据,因为前两⾏的数据个数与后三⾏的数据个数不同,所以这⾥headerlinesIn = 2,即从读取从第 3⾏开始的数值数据。
matlab读取excel数据的函数_理论说明
matlab读取excel数据的函数理论说明1. 引言1.1 概述本篇文章将详细介绍Matlab读取Excel数据的函数。
在现代科学研究和工程应用中,Excel表格广泛用于存储和管理数据。
而Matlab作为一种功能强大的科学计算平台,具备处理数据和进行可视化分析的能力,因此在许多实际应用中常常需要将Excel中的数据导入到Matlab环境中进行进一步分析。
1.2 文章结构本文分为五个主要部分。
首先,引言部分将简要概述本文内容,并介绍文章结构。
然后,第二部分将详细讲解Matlab读取Excel数据的函数,包括不同的文件读取方式以及相关处理函数的介绍。
接下来,第三部分将介绍Matlab中对Excel 数据进行操作的方法,包括导出为Excel文件、数据处理与计算方法以及图表生成与数据可视化技巧。
第四部分总结了常见问题与解决方案,在无法读取或打开Excel文件、数据格式转换和清洗时出现问题以及Excel数据导入后可能遇到的错误等方面提供解决方法和建议。
最后一部分是结论与展望,对Matlab读取Excel数据的函数进行总结评价,并提出了后续研究方向建议与展望。
1.3 目的本文的目的是系统地介绍Matlab中读取Excel数据的函数和方法,帮助读者理解和掌握如何在Matlab环境中进行Excel数据的读取、处理和分析。
通过该文章的阅读,读者将能够充分利用Matlab提供的强大功能,高效地操作Excel数据,并应用到自己的科研或工程实践中。
同时,本文还旨在帮助读者解决在使用Matlab读取Excel数据过程中可能遇到的常见问题,提高工作效率并减少错误。
最后,展望未来,我们也希望能进一步探索利用Matlab处理和分析Excel数据的新方法与技巧,并将其推动为更广泛、更高效的数据处理工具。
2. Matlab读取Excel数据的函数:2.1 Excel文件的读取方式:在Matlab中,可以使用多种方式来读取Excel文件的数据。
如何将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不能识别), 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文件的数据交换
%code by ariszheng@ %2010-6-22 %% %文件名称“excel.xls” [typ, desc, fmt] = xlsfinfo('excel.xls') %文件在当前工作目录下,直接输入文件名称即可。 system('taskkill /F /IM EXCEL.EXE');
注释:在用 matlab2009a 与 Excel2007 进行数据交互时,每次使用 xls 类函数,都会重新开启一个 Excel 进程,若反复使用 xls 类函数会导致系统中多个 Excel 进程并存,消耗系统资源,导致系统运行速度 下降,故作者使用 system('taskkill /F /IM EXCEL.EXE')调用 windows 的 taskkill 函数关闭刚使用的 Excel 进 程。 本例输出结果如下:
'总成绩' '' '' '' '' ''
'备注' '' '' '缺考' '' ''
7.2 调用函数读写 Excel 文件
7.2.1 调用 xlsfinfo 函数获取文件信息 在读取 Excel 目标数据文件前,可以通过 xlsfinfo 函数获取该文件的相关信息,为后续操作获得有效 信息(例如,文件类型、文件内部结构、相关的软件版本等)。 xlsinfo 函数的调用格式如下:
matlab数据导入
一将excel数据导入直接将下面三句话导入[filename, pathname]= uigetfile('*.xls'); %寻找源文件file=[pathname filename]; %赋名x=xlsread(file); %格式转换为矩阵之后就用x来代表导入的这个矩阵。
如excel 里输入了1 2 34 5 6如下命令x(1,:)ans =1 2 3二 txe文件导入假定名为 test.txt 的文件中以下为文件内容"你好,我的数据欢迎来到动力学与控制技术论坛1 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555"这样的文件怎么读入数据呢?方法有多种,现举两个比较简单实用的。
方法一:在文件菜单中选择 file/import data,按照提示进行操作至结束。
在 command 窗口中输入>> whosName Size Bytes Classdata 5x4 160 double array textdata 4x1 300 cell arrayGrand total is 54 elements using 460 bytes>> datadata =1 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555>> textdatatextdata ='你好''欢迎来到''动力学与控制技术论坛'''方法二:[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f 等。
MATLAB如何导入excel数据
下面我就通过实例介绍一下MATLAB如何导入excel数据。
1.读取sheet1中的所有数据
我们以03版excel为例,假设excel中数据为
默认这些文本以及数字都放在sheet1中,我们将此excel选入当前工作目录(必要步骤),然后再MATLAB主窗口中输入下面命令:[NUM,TXT,R AW]=xlsread('example'),其中example是你的excel名,这里我所有
的数据都在example.xls中。
输入以上命令,回车
NUM返回的是excel中的数据,TXT输出的是文本内容,RAW输出的是未处理数据,这里因为文本占用的矩阵一共是8行6列,所以就输出了如上内容。
一般情况下,我们读取的都是excel中的数据,所以可以直接用[NUM]=xlsread('example'),只输出数据矩阵便可。
2.读取指定sheet中的数据
假如我们想读取第二个sheet中的数据,这里请注意:matlab读取exce l中的数据是按照sheet在excel中的排放顺序来的,sheet3现在排在
第二位,我们输入命令[NUM]=xlsread('example',2),回车结果如下:
3.读取指定单元格中的数据
以sheet2中的数据为例
假设我们读取A3-D7之间的数据,那么我们输入命令[NUM]=xlsread('ex ample',2,'A3:D7'),回车,结果如下:
4.如果以上经验有用,请点击下方的有用按钮支持我的工作,谢谢!。
第4讲 MATLAB与Excel文件的数据交换
理学院 Arrow
6 数据的标准化变换 对于多元数据,当各变量的量纲和数量级不一致时,往往 需要对数据进行变换处理,以消除量纲和 数量级的限制,将各变量的观测值转换到某一指定的范围, 如[ 1,1] , [0,1] 等,以便进行后续的统计分 析。 本节介绍两种常用的数据变换方法:标准化变换和 极差规格化变换。 zscore 函数:MATLAB 统计工具箱中提供了 zscore 函 数,用来作数据的标准化变换,其调用方式如下: Z = zscore(X) [Z,mu,sigma] = zscore(X) […] = zscore(X,1) […] = zscore(X,flag,dim)
理学院 Arrow
6.2 数据的极差规格化变换 变换公式对于观测值矩阵 X ,极差规格化变换后的矩阵 为:
理学院 Arrow
理学院 Arrow
理学院 Arrow
理学院 Arrow
实验作业
1、在国泰安网站下载数据,选择两个行业的四支股票, 计算其相关系数。
要求:下载数据的过程,计算过程都必须列出。原则就是,其他读 者可以直接按照作者的步骤还原实验过程。 注:原始数据以附件形式发送
3. Excel-Link 宏 如果 excel 文件数据量太大( 1GB)以上,使用函数进行 数据交互存在一定问题,例如 Java 内存溢出 等等。数据量较大的时候可以使用 Excel-Link 宏进行数据 交互。 Matlab 提供使其能与 excel 互动操作的 Excel-link 宏。 Excel-link 使得数据在 matlab 与 excel 之 间随意交换,以及在 excel 下调用 matlab 的函数。 Excel-link 将 matlab 的强大的数值计算功能、数据可视化 功能与 excel 的数据 Sheet 功能结合在一起。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用Excel Link实现Excel与Matlab混合编程Excel Link是一个在Windows环境下实现Excel与Matlab进行链接的插件。
通过连接Excel 和Matlab,用户可以在Excel工作表空间和宏编程工具中使用Matlab的数值计算,图形处理等功能,不需要脱离Excel环境。
同时由Excel Link来保证两个工作环境中的数据交换和同步更新。
1. Excel Link的安装和和设置首先,在系统中安装Excel软件。
然后安装Matlab和Excel Link,用Matlab安装盘开始安装,选择自定义安装中,在选中组件ExcelLink,如下图所示:安装完Excel Link后还需要在Excel中进行一些设置后才能使用。
启动Excel,选择菜单“工具”项下的“加载宏”项,弹出如下对话框:选中Excel Link项。
如果该项不存在,则通过浏览目录,在目录%MATLAB%toolboxexlink下找到excllink.xla文件,如下图示,并确定。
选中ExcelLink项并确定后,在Excel中多了一个Excel Link工具条,如下图示: 经过以上的设置后就可以开始使用Excel Link了。
2. ExcelLink连接管理函数(1) Matlabinit该函数只能在宏子例程中使用。
初始化ExcelLink和启动Matlab进程。
只有在MLAutoStart 函数中使用“no”参数,才需要手动使用Matlabinit来初始化ExcelLink和启动Matlab进程,如果使用参数“yes”,则Matlabinit是自动执行的。
使用语法:Matlabinit(2) MLAutoStart设置自动启动Matlab和ExcelLink。
在工作表中的使用语法:MLAutoStart("yes")MLAutoStart("no")在宏中的使用语法:MLAutoStart "yes"MLAutoStart "no"使用“yes”参数,则当Excel启动时,自动启动Matlab和ExcelLink;如果使用参数“no”,则当Excel启动时,不启动Matlab和ExcelLink。
如果在此之前它们已经启动,则无任何影响。
(3) MLClose终止Matlab进程并删除Matlab工作空间的所有变量。
并通知Excel,Matlab不再运行。
在工作表中的使用语法:MLClose()在宏中的使用语法:MLClose(4) MLOpen启动Matlab进程。
如果Matlab进程已经启动,则MLOpen函数不进行任何操作。
在使用MLClose关闭Matlab进程后使用MLOpen来重新启动Matlab。
在工作表中的使用语法:MLOpen()在宏中的使用语法:MLOpen3. ExcelLink数据管理函数(1) Matlabfcn根据给定的Excel数据执行Matlab命令。
在工作表中使用时的语法:matlabfcn(command,inputs)参数command,Matlab将执行的命令,命令需要写成“command”(使用双引号引起来)的形式。
参数inputs 传给Matlab命令的变长输入参数列表。
列表是包含数据的工作表单元格范围。
函数返回单一数值或者是字符串,结果返回到调用函数的单元格中。
例如matlabfcn(”sum”,B1:B10);把从B1到B10的单元格中数据相加,如下图示:并将结果返回到当前的活动单元格。
即A11,结果如下图。
(2) Matlabsub根据给定的Excel数据执行Matlab命令,并将结果返回到指定的单元格中。
在工作表中的使用语法:matlabsub(command,edat,inputs)command和inputs参数的与matlabfcn相同。
参数edat,指定返回值写入在工作表中的位置。
如果edat用双引号引起来,则edat必须是单元格地址或范围的名字。
如果参数不用引号引起edat的形式,则通过计算获得矩阵名。
例如:matlabsub(”sum”,”A1”,B1:B10);把工作表中从单元格B1到B10的数据相加,并将结果返回到单元格A1中。
注意:edat指定的位置不能包含matlabsub所在的位置。
(3) MLAppendMatrix将Excel工作表中的数据追加到Matlab中指定的矩阵中如果该矩阵不存在,则创建矩阵。
在工作表中使用的语法:MLAppendMatrix(var_name,mdat)在宏中使用的语法:MLAppendMatrix var_name,mdat注意要追加的数据维数要和原矩阵中的维数相匹配,否则出错。
例如:MLAppendMatrix(”a”,A1:A2);假设矩阵a是个2行3列的矩阵,如下图:将A1:A2中的数据追加到矩阵后,如下图示成为矩阵的第四列,如下图示。
单元格B1中是字符a,函数MLAppendMatrix(B1,A1:A2)的作用于MLAppendMatrix(”a”,A1:A2)相同。
(4) MLDeleteMatrix删除Matlab空间中指定的矩阵在工作表中使用的语法:MLDeleteMatrix(var_name);在宏中使用的语法:MLDeleteMatrix var_nameVar_name,是要删除的矩阵名,如果矩阵名在引号内“var_name”的形式,则直接指定变量名,如果var_name不用引号引起来,则通过计算获得实际矩阵的名字。
例如,单元格B1中的内容为a,MLDeleteMatrix(B1),则表示删除Matlab工作空间的矩阵a,它等价于MLDeleteMatrix(”a”)(5) MLEvalString将命令(写成字符串的形式)传到Matlab中执行。
在工作表中使用的语法:MLEvalString(command);在宏中使用的语法:MLEvalString command参数command如果是用引号引起来”command”的形式,则是直接指定命令;如果不用引号引起来command的形式,则command必须是包含了命令字符串的工作表的单元格地址或者是范围。
例如:MLEvalString(”b=magic(4)”);表示在Matlab中执行命令b=magic(4);(6) MLGetMatrix将指定的Matlab矩阵写入到Excel工作表中的指定位置。
在工作表中使用的语法:MLGetMatrix(var_name,edat)在宏中使用的语法:MLGetMatrix var_name,edat参数Var_name,是要写入工作表的矩阵名,如果矩阵名在引号内“var_name”的形式,则直接指定变量名,如果var_name不用引号引起来,则通过计算获得实际矩阵的名字。
参数edat指定了矩阵写入工组表的位置。
如果参数是用引号引起”edat”的形式,则是直接指定矩阵名,如果参数不用引号引起edat的形式,则通过计算获得矩阵名。
例如:MLGetMatrix(”a”,”sheet1!B1”);将矩阵a写入工作表sheet1以单元格B1起始的位置,如果a是一个2行3列的矩阵,则矩阵占据sheet1的B1到D2的空间。
如果在A1中有字符串a,则MLGetMatrix(A1,” sheet1!C1”)的作用与MLGetMatrix(”a”,”sheet1!C1”)相同。
函数运行结果如图示。
(7) MLGetVar将MatLab矩阵传送给Excel VBA变量,只能在宏子例程中使用。
使用语法:MLGetVar ML_var_name,VBA_var_name参数ML_var_name是将获取的矩阵名。
如果矩阵名在引号内“ML_var_name”的形式,则直接指定变量名,如果ML_var_name不用引号引起来,则通过计算获得实际矩阵的名字。
参数VBA_var_name,将其Matlab矩阵数据传给的VBA变量名,不用引号将其引起来。
例如:Sub Fetch()MLGetVar "J",DataJEnd Sub表示将Matlab矩阵J的数据写入到VBA变量DataJ中。
(8) MLPutMatrix用指定位置的Excel工作表中的数据,创建或者覆盖Matlab矩阵。
在工作表中使用的语法:MLPutMatrix(var_name,mdat)在宏中使用的语法:MLPutString var_name,mdat参数var_name是将有被创建或者被覆盖的矩阵名。
如果指定的矩阵不存在,则创建该矩阵,如果矩阵已经存在,则覆盖该矩阵。
参数mdat,指定工作表中的位置。
例如:工作表中有A1到C2的数据,使用函数MLPutMatrix(”c”,A1:C2),则可以将这些数据写到Matlab矩阵c中,如下图示。
注意:如果修改工作表中的数据,则Matlab中的矩阵相应发生变化。
如果把数据剪切到别的地方,如D1到F2,则函数MLPutMatrix(”c”,A1:C2)会自动更改为MLPutMatrix(”c”,D1:F2)(9) MLPutVar使用VBA变量的数据创建或者覆盖Matlab 矩阵。
只能在宏子例程中使用。
使用语法:MLPutVar ML_var_name,VBA_var_name参数ML_var_name是将被创建或覆盖的矩阵名。
如果矩阵名在引号内“ML_var_name”的形式,则直接指定变量名,如果ML_var_name不用引号引起来,则通过计算获得实际矩阵的名字。
参数VBA_var_name,将其数据传给Matlab矩阵的VBA变量名,不用引号将其引起来。
如果VBA_var_name变量包含字符串的数据,则输出到Matlab为元胞数组格式。
例如:Sub Put()MLPutVar "K",DataKEnd Sub用VBA变量DataK中的数据创建或着覆盖Matlab矩阵K。
4. 补充使用Excel Link的注意事项(1)Excel工作表通常以“=”作为起始标记,例如=matlabfcn(”sum”,B1:B10);(2)大多数的Excel Link函数中有两种定义变量的方式:直接定义,即将变量用双引号标记则是直接定义变量,例如MLGetMatrix(”bonds”,”sheet1!C1”),其中bonds是直接定义的变量;间接定义,函数中的不用双引号的工作表单元地址或行列名称被看作是间接变量,函数对其指引的内容进行操作。
工作表单元地址可以包含页表序号,例如MLDeleteMatrix(B1);单元格B1中的内容为a,则相当于执行MLDeleteMatrix(”a”);(3)建议使用Excel Link的自动计算模式。