MATLAB 与 Excel 接口
MATLAB 与 Excel 接口
MATLAB 与 Excel 有两种接口方式:一种是通过 MATLAB 提供的 Excel 生成器,生成
220 MATLAB 实用教程
DLL 组件和 VBA 代码,实现 Excel 对 MATLAB 的调用;另一种是利用 MATLAB 提供的 Excel
link 插件,直接在 Excel 环境下运行 MATLAB 命令,完成与 MATLAB 的数据传输。下面介
绍的是第二种接口方式——Excel link。
Excel Link 是 Microsoft Windows 环境下实现 MATLAB 和 Microsoft Excel 进行链接的插
件。通过 MATLAB 与 Excel 链接,用户可以在 Excel 工作环境中利用宏工具及 MATLAB 数
据处理和图形处理功能进行相关操作,由 Excel link 进行 MATLAB 和 Excel 工作环境中的数
据交换和同步更新。使用 Excel link 时,不必脱离 Excel 环境,可直接在 Excel 工作区或宏操
作中调用 MATLAB 函数。
11.2.1 Excel link 的安装和操作
1.系统需求
Excel link 需要的操作系统是 Microsoft Windows XP、Microsoft Windows NT 或 Microsoft
Windows 2000,另外还需要 5.1 以上版本的 MATLAB 和 Excel 98、Excel 2000 或 Excel 2002。
2.Excel 中注册 Excel link
系统需要在 Windows 环境下先安装 Excel,然后再安装 MATLAB 和 Excel link。安装 Excel
link,在 MATLAB 安装组件选择框中选中 Excel link 即可,安装完毕后必须在 Excel 中进行
相应设置,具体操作过程如下。
Þ 启动Excel。
Þ 在【工具】菜单中选择【加载宏】选项,打开【加载宏】对话框,单击【浏览】。
Þ 在弹出的路径选择对话框中,选择“<matlabroot>\toolbox\exlink”下的Excel插件
“excllink.xla”,单击【确定】按钮。
Þ 返回【加载宏】对话框,单击【确定】按钮,弹出MATLAB运行窗口。
Þ 稍后,Excel Link工具条在Excel工作窗口左上角出现。工具条包括 “startmatlab”,
“putmatrix”,“getmatrix”和“evalstring”4 个工具按钮(见图 11-2),分别为启动
MATLAB、将数据传给MATLAB、从MATLAB提取数据和执行MATLAB命令。

图 11-2 Excel Link 工具条
3.启动 Excel Link
启动 Excel Link 分自动启动和手动启动两种方式。
(1)自动启动
安装和注册 Excel Link 之后启动 Excel 时,将自动启动 MATLAB 和 Excel Link。
如果用户不想在打开 Excel 时同时启动 MATLAB 和 Excel Link,可在 Excel 数据表单元
第 11 章 编译器与外部接口 221
格中输入=“MLAutoStart(“no”)”后按 Enter 键,如图 11-3 所示,此函数将更改初始化文件,
再次启动该文件时 MATLAB 和 Excel Link 不再自动启动。

图 11-3 A1 单元中输入“=MLAutoStart("no")”
(2)手动启动
Þ 单击【工具】菜单,选择【宏】。
Þ 在弹出 【宏】对话框的【宏名】文本框中输入“matlabinit”,单击【执行】按钮即可。
4.终止 Excel Link
终止 Excel 时,Excel Link 和 MATLAB 将同时终止。要在 Excel 中终止 MATLAB 和 Excel
Link 的运行,可在 Excel 数据表单元格中输入“=MLClose()”并按 Enter 键。重新启动时,
可在 Excel 数据表单元格中输入“=MLOpen()”后按 Enter 键或在【宏名】文本框中输入
“matlabinit”手动启动。
11.2.2 Excel link 的函数
Excel Link 提供了一系列管理链接、操作数据的函数,可在 Excel 环境中通过宏或工作表
单元公式调用这些函数,实现 Excel Link 和 MATLAB 的数据交换与同步更新。
1.链接管理函数
Excel Link 提供了四个链接管理函数来初始化、启动、终止 Excel Link 和 MATLAB。
Matlabinit:初始化 Excel Link 并启动 MATLAB 进程。
MLAutoStart:自动启动 MATLAB 进程。
MLClose:终止 MATLAB 进程。
MLOpen:启动 MATLAB 进程。
可在 Excel 的【工具】菜单中单击【宏】选项或在宏过程中调用 matlabinit 函数,其他链
接管理函数可用宏或工作表单元公式进行调用。
2.数据管理函数
Excel Link 提供了 9 个数据管理函数在 Excel 和 MATLAB 之间复制数据、在 Excel 中运
行 MATLAB 命令。
Matlabfcn:对给定 Excel 数据运行 MATLAB 命令。
Matlabsub:对给定 Excel 数据运行 MATLAB 命令并指定输出位置。
MLAppendMatrix:将 Excel 工作表中数据创建或添加到 MATLAB 矩阵。
MLDeleteMatrix:删除 MATLAB 矩阵。
222 MATLAB 实用教程
MLEvalString:运行 MATLAB 命令。
MLGetMatrix:将 MATLAB 矩阵内容写到 Excel 工作表中。
MLGetVar:将 MATLAB 矩阵内容写到 Excel VBA 变量中。
MLPutMatrix:用 Excel 工作表中数据创建或覆盖 MATLAB 矩阵。
MLPutVar:用 Excel VBA 变量数据创建或覆盖 MATLAB 矩阵。
MLGetVar 和 MLPutVar 只能在宏中调用,其他函数可通过宏或工作表单元公式调用。
3.Excel link 实例
下面通过工作表对一组数据进行曲线拟合,说明 Excel link 的使用方法。
创建 Excel_example.xls 文件,如图 11-4 所示,DATA 下的第一列、第二列分别为数值 X
和 Y。

图 11-4 创建 Excel_example.xls 文件
选择单元 E4,按 F2 键,回车执行 Excel link 函数 MLPutMatrix("x",A4:A15),它将 A4:A15
发送到 MATLAB 并给变量数组 x 赋值。对 E5 进行类似操作,将框中第二列数据赋值给 y。
对 E9、E10 执行类似操作,依次执行下列语句:
MLEvalString("p=polyfit(x',y',3)")
MLEvalString("newfit = polyval(p,x)")
这两条语句是MATLAB中执行双引号中命令,对数据点用y=ax3+bx2+cx+d进行曲线拟合。
在 E11 中执行命令:
MLEvalString("a=p(1);b=p(2);c=p(3);d=p(4)")
该语句是 MATLAB 中将拟合系数分别给 a、b、c、d 赋值。
在 E14、E15、E16、E17 中分别执行命令:
MLGetMatrix("a","E21")
MLGetMatrix("b","F21")
MLGetMatrix("c","G21")
MLGetMatrix("d","H21")
第 11 章 编译器与外部接口 223
这 4 条语句分别是 MATLAB 中将 a、b、c、d 传给 Excel 中单元格 E21、F21、G21、H21。
在 E18 中执行命令:
MLEvalString("plot(x,newfit,'-' ,x,y,'o')")
该语句利用 MATLAB 绘图函数显示原始数据和拟合曲线,结果如图 11-5 所示。

图 11-5 Excel Link 的运算结果
MATLAB 与 Excel 接口的更多相关文章
- matlab读取excel文件中的数据
1.读取sheet1中的所有数据 1.1首先我们建立一个sheet表,表名为‘111’ 1.2 默认这些文本以及数字都放在sheet1中,我们将此excel选入当前工作目录(必要步骤), 选入当前工作 ...
- ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录
已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...
- python+requests+excel 接口自动化框架
一.项目框架如图: 1.common :这个包都是一些公共的方法,如:手机号加解密,get/post接口请求的方法封装,接口鉴权,发邮件,读写excel文件方法等等 2.result:存放每次运行的l ...
- Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决
1.问题描述: 该错误通常发生在应用函数读取excel文件(后缀xls或xlsx)时. 应用xlsread函数读取提示服务器出现意外情况: 应用importdata读取时提示can‘t open fi ...
- Requests+Excel接口自动化测试(Python)
一.框架结构: 工程目录 二.Case文件设计 三.基础包 base 3.1 封装get/post请求(runmethon.py) import requests import json class ...
- matlab写入excel数据
使用xlswrite 可以help xlswrite查看用法 xlswrite(filename,A)xlswrite(filename,A,sheet)xlswrite(filename,A,xlR ...
- SoapUI+excel接口自动化测试简述
1.自动化测试工具介绍 由于系统前后端分离,所以接口测试势在必行,在接触了几天接口测试框架,包括postman.httpclient.loadrunner.soapUI等,下面具体讲讲最终决定使用so ...
- (转)Java + Excel 接口自动化
最近项目比较悠闲,想找点事干,写了个 Excel 接口测试的 "框架" 以前用 python 写过一个,这次用 java, 应该说框架都不算,反正就是写了,能帮我解决问题就行. 当 ...
- Java + Excel 接口自动化
最近项目比较悠闲,想找点事干,写了个 Excel 接口测试的 "框架" 以前用 python 写过一个,这次用 java, 应该说框架都不算,反正就是写了,能帮我解决问题就行. 当 ...
随机推荐
- eric4 中pyqt 字符串 输入 获取
在eric4中使用pyqt需要注意: 输入 中文 时,前面加 u ,例如: from PyQt4.QtGui import * from PyQt4.QtCore import * QMessageB ...
- 面试官最爱的 volatile 关键字,这些问题你都搞懂了没?
前言 volatile相关的知识点,在面试过程中,属于基础问题,是必须要掌握的知识点,如果回答不上来会严重扣分的哦. volatile关键字基本介绍 volatile可以看成是synchronized ...
- 哲思集-转载自CSDN
CSDN 创始人蒋涛:世界被编码之后 分享赚¥9.90订阅博主 “写代码 20 年,通过网络平台和社区,帮助中国的程序员更好成长,这是我最希望被大家记住的.”这是蒋涛接受 ZAKER 采访的开场白. ...
- Hadoop 2.6.1 集群安装配置教程
集群环境: 192.168.56.10 master 192.168.56.11 slave1 192.168.56.12 slave2 下载安装包/拷贝安装包 # 存放路径: cd /usr/loc ...
- 运用sed命令高效地删除文件的特定行
运用 sed 命令高效地删除文件的特定行 正常来说,我们想要删除文件中的某些行内容,一般都是先打开这个文件,然后找到要删除的内容,再然后选中这些行并按删除键进行删除,这在数据量很少时是没有问题的.但是 ...
- 分享一个登录页面(前端框架layui)-20200318
效果图 对该页面的总结: 1.前端框架layui layui官网:https://www.layui.com/,下载之后,简单配置就可使用 2.layui模块引用与使用的方式 <script&g ...
- 焦大:seo思维光年(上)检索的价值观
http://www.wocaoseo.com/thread-55-1-1.html 检索的价值观是什么?最近很多人咨询我这个问题,因为在百度上根本找不到相关的资料,其实这个东西也是我自己总结的,比如 ...
- csp201909-2小明种苹果续
/* 定义输入N 二维数组 输出T总数 D掉落棵树 E掉落组数 定义last记录上次掉落的编号,flag=1表示两次连续掉落,不掉落归零 spec=1表示1 2都掉落了,spec=2表示只有1掉落 对 ...
- 源码浅入浅出 Java ConcurrentHashMap
从源码的角度深入地分析了 ConcurrentHashMap 这个线程安全的 HashMap,希望能够给你一些帮助. 老读者就请肆无忌惮地点赞吧,微信搜索[沉默王二]关注这个在九朝古都洛阳苟且偷生的程 ...
- laravel使用snappy生成pdf问题及过程(本地环境)
1.安装过程可以按照这里进行https://packagist.org/packages/barryvdh/laravel-snappy 其中要按装好 "barryvdh/laravel-s ...