在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
然后,我该如何处理这种情况?谢谢。
答案 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