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, 应该说框架都不算,反正就是写了,能帮我解决问题就行. 当 ...
随机推荐
- Javascript之其实我觉得原型链没有难的那么夸张!
原型链.闭包.事件循环等,可以说是js中比较复杂的知识了,复杂的不是因为它的概念,而是因为它们本身都涉及到很多的知识体系.所以很难串联起来,有一个完整的思路.我最近想把js中有点意思的知识都总结整理一 ...
- Python定时任务轻量解决方案---Schedule
写后端的同学们可能都知道,工作中可能需要周期性执行一些任务,俗称定时任务.Linux环境下,可以借助于系统自带的crontab完成定时任务.但是很多时候,开发的同学们可能并没有权限去操作crontab ...
- Linux系统环境下MySQL数据库源代码的安装
Linux系统环境下MySQL数据库源代码的安装 基本环境:CentOS Linux release 7.8.2003 (Core).MySQL5.6 一. 安装环境准备 若要在Linux系 ...
- webstorm激活码2020--定期更新
2020年8月22日更新 一般错误关闭软件重填即可,key is invalid 错误需要恢复破解或者重装,才能使用 V8AF5QDT5R-eyJsaWNlbnNlSWQiOiJWOEFGNVFEVD ...
- HYSBZ-1045 糖果传递
有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. 假设当所有人获得均等的糖果的时候: 每个人手上的糖果的数量为\(ave\) 第\(i\)个人初始时的 ...
- python numpy数组操作2
数组的四则运算 在numpy模块中,实现四则运算的计算既可以使用运算符号,也可以使用函数,具体如下例所示: #加法运算 import numpy as npmath = np.array([98,83 ...
- GET和POST的本质区别
前言:相信小伙伴们面试时候一定都遇到过这个问题,即使没有遇到过,至少也听说过,网上资料一大片,大概每个人都能说出来一些.但是总感觉面试装逼不成功,所以就翻阅了部分资料,进一步整理了下. 一般当我们提到 ...
- kotlin 作用域函数 : let、run、with、apply、 also、takeIf、takeUnless
1.官方文档 英文: https://kotlinlang.org/docs/reference/scope-functions.html 中文: https://www.kotlincn.net/d ...
- android 捕获未try的异常、抓取崩溃日志
1.Thread.UncaughtExceptionHandler java里有很多异常如:空指针异常,越界异常,数值转换异常,除0异常,数据库异常等等.如果自己没有try / catch 那么线程就 ...
- adb 打开手机端口进行无线模式调试
打开手机端口 让手机在指定的端口可以接收到TCP/IP连接. 确保手机开启了usb调试 用usb线把手机和电脑连接起来 执行命令:adb tcpip 5555 执行成功后就可以把usb线拔掉了,端口可 ...