使用stdout

时间:2016-01-06 16:50:58

标签: matlab system stdout

我正在使用MATLAB并通过系统命令调用.exe。

[status,cmdout] = system(command_s);

其中command_s是一个命令字符串,在我的脚本中先前格式化,以将所有需要的选项传递给.exe。 .exe通常会通过Windows / DOS中的>重定向运算符写入.csv文件。相反,此输出将转到cmdout,我将在稍后的MATLAB脚本中使用它。它正常工作并且符合预期。我这样做是为了让进程只使用内存并且不会将非常大的文件写入磁盘,然后必须从磁盘读取,然后在完成后删除。最后,它会保存一个.mat文件,通常是几百KB而不是10s / 100s的MB,因为.csv文件会是这样(最后会抛出一些不需要的数据)。

我遇到的问题是因为我正在处理大文件,所以可执行文件可能需要很长时间。执行此命令后,我通常需要等待大约2分钟。与此同时,我没有反馈知道它正在进展,我的系统没有冻结。我知道我可以将&符号添加到我的字符串command_s的末尾,并在后台运行时运行MATLAB代码(或者像某些人所说的那样异步),但这会产生一个外部窗口AND使cmdout为空 - 所以我无法使用输出 - 强迫我每次执行时都会坐在那里2分钟。

有没有办法在后台运行并从命令中获取stdout?

1 个答案:

答案 0 :(得分:0)

也许你可以尝试系统(command_s,' - echo')?