Matlab程序调用外部exe(可执行文件)方法及参数传递
2013-07-04 08:01
951 查看
如何进行matlab和c代码联合调试, 请见下帖:
http://www.matlabsky.com/thread-27585-1-1.html
原帖请见: http://www.matlabsky.com/thread-541-1-1.html
一般情况,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(注意这里传递进去的是字符,如果不是我们需要的类型,则在程序中
要进行类型转换)。
下面我们用例子说明
%============首先创建下面的m文件,并将其编译成exe文件====================
function [x,y]=foo(z);
if ischar(z)
z=str2num(z);%由于参数传递都是字符形式,这里必须将其转为数值型
else
z=z;
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
z=str2num(z);
end
x=2*z
y=z^2;
disp(y)
==============在command window中输入下面的代码=================
for k=1:10
mycmd = ['foo ',num2str(k)];
system(mycmd);%使用dos等效果一样,具体使用看帮助系统
end
复制代码
最后还是有再次提醒大家的
1.输入参数都是以字符串传递的,如果你需要得到其它类型的数据,那在M文件请在使用该参数之前,进行转换,比如
str2num()
2.在调用exe时,你没法直接得到返回值。唯一的获得运行结果的办法就是让它显示在屏幕上或者把它存储在文件中。
http://www.matlabsky.com/thread-27585-1-1.html
原帖请见: http://www.matlabsky.com/thread-541-1-1.html
一般情况,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(注意这里传递进去的是字符,如果不是我们需要的类型,则在程序中
要进行类型转换)。
下面我们用例子说明
%============首先创建下面的m文件,并将其编译成exe文件====================
function [x,y]=foo(z);
if ischar(z)
z=str2num(z);%由于参数传递都是字符形式,这里必须将其转为数值型
else
z=z;
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
z=str2num(z);
end
x=2*z
y=z^2;
disp(y)
==============在command window中输入下面的代码=================
for k=1:10
mycmd = ['foo ',num2str(k)];
system(mycmd);%使用dos等效果一样,具体使用看帮助系统
end
复制代码
最后还是有再次提醒大家的
1.输入参数都是以字符串传递的,如果你需要得到其它类型的数据,那在M文件请在使用该参数之前,进行转换,比如
str2num()
2.在调用exe时,你没法直接得到返回值。唯一的获得运行结果的办法就是让它显示在屏幕上或者把它存储在文件中。
相关文章推荐
- VFP调用外部Exe文件,执行完后,再接着执行本程序(经典转载)
- java 执行命令、调用bat文件、调用外部程序的两种方法
- winform c#调用外部EXE程序,并等待外部EXE程序执行完毕才执行下面的代码的方法。
- 在Matlab中调用外部的exe文件,并将Workspace 中的变量作为参数传递给exe文件
- C/C++执行外部程序(调用外部exe程序)
- 如何将Matlab程序编译成exe文件方法介绍
- Apache POI API操作Microsoft Office格式文件的方法+JAVA调用exe可执行文件
- 给C#程序加壳(C# 调用嵌入资源的EXE文件方法)
- 将C#程序嵌入资源中(C# 调用嵌入资源的EXE文件方法)
- 在程序中调用外部程序,用process返回命令执行结果以及抓取错误信息的方法
- C/C++执行外部程序(调用外部exe程序)
- Matlab中调用VS编译的exe文件并传递变量 的方法
- 在VC程序中调用exe文件或者批处理文件方法总结
- Unity C#调用外部exe程序的方法
- matlab GUI程序转换成exe可执行文件
- matlab的m程序转执行文件exe
- windows下C++调用shell启动和关闭可执行文件exe的最简单方法
- 在执行yiic webapp命令时,就报以下错误了: ‘"php.exe"’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
- VC中调用外部EXE程序方法(转)
- VC中调用外部EXE程序方法(转)