我有从Microsoft Visual Studio 2010中编译C ++代码获得的a.exe文件。我试图从Matlab运行a.exe文件,但我将此文件与另一个用Matlab编写的.m文件循环使用。

这个想法是在.m循环中在Matlab中运行for文件。首先,Matlab文件使用循环的第一个值,然后在Matlab中以相同的值运行a.exe文件,依此类推。我使用sprintf.exe文件生成输入字符串,如下所述:

wvl=0.4,

for ii=1:100 wvl=0.4+i*0.01;


Matlab代码的另一部分可以进行一些计算并为C ++代码准备输入数据文件:

str=sprinf('a.exe,%f',wvl);

system (str);


我已经在C ++代码中使用命令行参数来运行具有不同值的可执行文件:

int main(int argc, char *argv[]);

wvl=atof ( argv[1]);
cout << "wvl=" << wvl << endl;


我想在编译代码后更改上面提到的值wvl

我不知道该错误是C ++代码还是Matlab代码,因为我得到了错误的结果。

最佳答案

将其构建为Matlab可执行(MEX)文件。它可以像Matlab函数一样接受输入参数。

http://www.mathworks.de/de/help/matlab/matlab_external/introducing-mex-files.html

您的问题有点模棱两可:您试图运行a.exe,但可以使用此文件吗?

关于c++ - 使用更改输入值从Matlab运行C++的.exe文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24037371/

10-11 22:44
查看更多