【发布时间】:2012-01-05 19:35:23
【问题描述】:
我有一个调用 Perl 脚本的 matlab 函数,该脚本将大文本文件转换为二进制文件以在 Matlab 中使用。有关 Perl 脚本的详细信息,请参见此处:Parsing unsorted data from large fixed width text
我的 Matlab 函数看起来像这样
function convertMyData(dataFileName)
%Do some checks on the data
disp('Done Checking Stuff!');
%Process data file with Perl
perl('myPerlScript.pl',dataFileName)
% More Processing on the Binary output from Perl
disp('All Done!');
在 perl 脚本中有一些显示脚本进度的打印语句,因为转换可能需要几分钟。像这样的:
while ($line = <INFILE>) {
if ($lineCount % 100000 == 0){ #Display Progress every 100,000 lines
print "On Line: ".$lineCount."\n";
}
#PROCESS LINE DATA HERE
$lineCount ++;
} # END WHILE <INFILE>
print "Finished Reading: ".$lineCount." Lines\n";
问题在于,在 Matlab 中,一旦脚本完成,我所有的“在线:XXXXX”print 语句都会被转储到 Matlab 的默认变量 ans,而不是像 Matlab 的 disp() 函数那样实际显示在提示符处。
那么,如何(如果可能)让外部程序的输出在运行时显示在 Matlab 提示符处?
【问题讨论】: