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, 应该说框架都不算,反正就是写了,能帮我解决问题就行. 当 ...
随机推荐
- python3 - selenium 添加有账号密码的代理
from selenium import webdriver import string import zipfile # 打包Google代理插件 def create_proxyauth_exte ...
- Ubuntu操作系统(文件传输)
首先选择Ubuntu版本为偶数版本--(系统比较稳定软件源比较齐全) Ubuntu和windows之间的文件传输首先在Windows上安装连接工具winscp 在Ubuntu开启SSH服务(https ...
- Dubbo系列之 (四)服务订阅(1)
辅助链接 Dubbo系列之 (一)SPI扩展 Dubbo系列之 (二)Registry注册中心-注册(1) Dubbo系列之 (三)Registry注册中心-注册(2) Dubbo系列之 (四)服务订 ...
- 什么是BFC?看这一篇就够了
BFC 定义 BFC(Block formatting context)直译为"块级格式化上下文".它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的 ...
- Spring Security认证流程分析--练气后期
写在前面 在前一篇文章中,我们介绍了如何配置spring security的自定义认证页面,以及前后端分离场景下如何获取spring security的CSRF Token.在这一篇文章中我们将来分析 ...
- Java中枚举的常见用法
在JDK1.5以后引入了一种新的类型,就是枚举(enum).enum是用来声明枚举类型数据,它可以像数组一样存储许多的元素,但是不同于数组的是,它除了数字不能存储以外, 其他类型的如字母.特殊符号.汉 ...
- 认证授权:学习OAuth协议
1.什么是OAuth协议? OAUTH协议为用户资源的授权提供了一个安全的.开放而又简易的标准.同时,任何第三方都可以使用OAuth认证服务,任何服务提供商都可以实现自身的OAuth认证服务,因而OA ...
- foreach循環體控制
通常情況下,在程式中的cursor定義之前,整合了l_sql變量后,轉化sql語句時,通過檢查STATUS的值來判斷sql語句是否有錯誤. 語句如: if STATUS th ...
- ZERO:从搜索用户来看SEO
http://www.wocaoseo.com/thread-63-1-1.html SEO是个奇怪的东西,一方面因为SEO流量往往占到网站流量几十个百分点,而且看上去它是免费的,因此许多人认为SEO ...
- 【Go语言探险】线上奇怪日志问题的排查
最近在日志中发现一些奇怪的日志,大致长这样: Error 2020-08-28 06:59:38.813+00:00 ... _msg=get immersion context, fetch tra ...