У меня есть функция matlab, которая вызывает скрипт Perl, который преобразует большой текстовый файл в двоичный файл для использования в Matlab. Подробнее о сценарии Perl см. Здесь: Анализ несортированных данных из текста большой фиксированной ширины
Моя функция 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 все мои операторы "On Line: XXXXX" print
просто сбрасываются в переменную Matlab по умолчанию ans
, когда сценарий завершается, вместо того, чтобы фактически отображаться в приглашении, как функция disp()
в Matlab.
Итак, как (если возможно) вывести вывод внешней программы, который будет отображаться в приглашении Matlab во время ее работы?