如何在MATLAB中调用命令程序

时间:2013-11-29 10:31:56

标签: c++ matlab

在MATLAB中,可以调用用C或C ++编写的命令程序。例如,我可以使用以下命令在Windows中调用命令程序:

system('program.exe -i input_file1.txt -o output_file1.txt -m 1 ');

通过这样做,我可以直接从MATLAB调用命令行程序。我现在遇到的问题是,当我使用system函数时,必须修复所有参数。例如,如果一个参数是可更改的,则使用system函数将失败。例如,

for i=1:3
  input_file_name = [num2str(i),'.txt'];
  system('program.exe -i input_file_name -o output_file1.txt -m 1 ');
end

然后,我该如何处理这种情况?谢谢。

2 个答案:

答案 0 :(得分:6)

您需要稍微更改语法:

for i=1:3
  input_file_name = [num2str(i),'.txt'];
  system(['program.exe -i ' input_file_name ' -o output_file1.txt -m 1 ']);
end

input_file_name是MATLAB中变量的名称,因此您可以在传递给system命令的字符串中逐字编写。

答案 1 :(得分:3)

更一般地说,您可以使用sprintf构建要传递给system的字符串,例如:

for n=1:3  
   system(sprintf('program.exe -i %d.txt -o output%d.txt -m 1',n,n));
end

(避免using i and j as variables in MATLAB