如何使用Matlab调用exe文件进行批量数据处理

标签:
sci科研理工论文研究 |
有些时候,需要用Matlab调用一个.exe的程序,同时还要输入参数,并通过输入一些列参数后,得到一个最终需要的值,然后再继续让程序进入下一轮计算。
由于计算量大,手动输入耗时长,效率低。所以要了解一下matlab调用exe的方法。
1. 传递参数的函数
一般情况,exe文件都是一些独立执行的程序,不需要涉及其他输入输出。但是有时我们的确需要!
其实,将参数传递给一个由matlab创建的exe,与将参数传递给其它任何平台的应用程序一样。
下面我们先讲解下,如何在DOS和UNIX中执行一个需要传递参数的应用程序。
(1) 传递字符串
filename string (注意如果多个参数时只能使用空格分隔开,下同)
(2) 传递数字或字母
filename num
(3) 传递数组
filename '[1 2 3]' '[4 5 6]'(注意每个数组必须使用'括起来)
如果你想在matlab中调用一个应用程序,你可以使用下面的任何一个命令:system,dos,unix或者调用一个有输入参数的exe的matlab代码。
比如sytem('myprog 1 2 3')表示执行有三个输入参数的mypro程序,三个参数分别是1,2,3(注意这里传递进去的是字符,如果不是我们需要的类型,则在程序中要进行类型转换)。
2.
例子
下面用例子说明。首先创建下面的m文件,并将其编译成exe文件:
function [x,y]=foo(z);
if ischar(z)
else
end
x=2*z % Omit the semicolon after calculation to display the value on the screen
y=z^2;
disp(y) % Use DISP command to display the value of a variable explicitly
或者使用下面的命令:
function [x,y]=foo(z);
if isdeployed %判断命令的执行环境,如果是matlab环境则返回false,如果是由matlab编译的应用程序环境则返回true
end
x=2*z
y=z^2;
disp(y)
在command window中输入下面的代码即可调用。
for k=1:10
end
3. 最后还是再次提醒大家
(1) 输入参数都是以字符串传递的,如果你需要得到其它类型的数据,那在m文件请在使用该参数之前进行转换,比如str2num();
(2) 在调用exe时,你没法直接得到返回值。唯一的获得运行结果的办法就是让它显示在屏幕上,或者把它存储在文件中。
文章转自网络,原作者已无从考证。版权归原作者所有,如涉及版权等问题,请立即联系我们,我们会予以更改或删除相关文章,保证您的权利。
(END)
公众号:科研充电宝(原名:科学计算编点程),不定时po一些科研干货、编程中的经验教训、实用技巧、技术宅和好玩的东西,欢迎关注~