Excel Link 不能自动改变 MLGetMatrix 中的地址。 (6) 在打开一个包含 ExcelLink 函数的 Excel 数据表的时候,Excel 会自动从上到下,从左 到右地执行这些函数, 所有有可能出现如“#COMMAND!”或“#NONEXIST”等 Excel 错误提示, 只需关闭所有 Matlab 图形窗口,然后按 F2 键并回车重新单步执行单元格里地函数就可以了。 5. 在工作表和在宏中使用 ExcelLink 的例子 例1 : (在工作表中使用 ExcelLink)如下图所示: 使用 mlopen()函数启动 Matlab, 使用 mlevalstring("load census")载入 matlab 自带的数据文件 census, 其中包含矩阵 cdate 和 pop。 使用 mlgetmatrix("cdate", "E1"), Matlab 空间的矩阵 cdata 写入到工作表中以 E1 开始 将 的位置; mlgetmatrix("pop","F1");将 Matlab 空间的矩阵 pop 写入到工作表中以 F1 开始的位置; 运行结果如下图所示: mlputmatrix("x",E1:E21) mlputmatrix("y",F1:F21) 将 E1 到 E21 中的数据以及 F1 到 F21 中的数据分别写入到 Matlab 空间的矩阵变量 x 和 y 中。 mlevalstring("z=x-mean(x)./std(x)") mlevalstring("[p2,s2]=polyfit(z,y,2)") mlevalstring("[pop2,de12]=polyval(p2,z,s2)") 根据所给的数据拟合多项式并进行偏差计算。 mlevalstring("plot(x,y,'+',x,pop2,'g-',… x,pop2+2*del2,'r:',x,pop2-2*del2,'r:')") 绘出离散点、拟合曲线图及偏差曲线图,结果如下图示: mlclose() ; 关闭 Matlab。 例 2:在宏中使用 Excel Link 新建一个 Excel 工作表,打开 Visual Basic 编辑器,操作如下图示: 然后在工程管理器中插入模块,如下图: 在模块代码区域写下如下代码,如下图: Function excellinktest() MLOpen mlevalstring "load census" mlgetmatrix "cdate", "E1" mlgetmatrix "pop", "F1" mlputmatrix "x", Range("E1:E21") mlputmatrix "y", Range("F1:F21") Matlabrequest mlevalstring "z=(x-mean(x))./std(x)" mlevalstring "[p2,s2]=polyfit(z,y,2)" mlevalstring "[pop2,del2]=polyval(p2,z,s2)" mlevalstring "plot(x,y,'+',x,pop2,'g-',x,pop2+2*del2,'r:',x,pop2-2*del2, 'r:')" End Function 选中模块 1,在“工具”菜单,“引用”选项,如下图示。 弹出引用对话框,选择 Excel Link,如下图: 确定后,即可运行该程序,结果与例 1 相同。 1、MATLAB 的数据导出问题: 如果计算结果被保存为 B 矩阵: 第一步在指令栏输入: 》save 'b.txt' B -ascii %(把矩阵 B 的数据,导出到了 TXT 文件中,名字为 b.txt)% 回车 结果 b.txt 文件就会被保存到 work 文件夹下 打开 b.txt,你会发现,如果数据很多,排列可能没有想象的整齐,而且是二进制显示的,你会怀 疑出问题了,别担心,没问题。