Командная строка работает хорошо во всех аспектах запуска программного обеспечения, а также создания отчетов и выходных файлов.Чтобы сгенерировать выходной файл, содержащий желаемый результат, нам нужно запустить исполняемый файл программы отчета, который использует файл параметров.Например, если бы я реализовал эти шаги в командной строке, это было бы так:
“path\report.exe” –f Report.rwd –o Report.rwo
Выходной файл - Report.rwo, этот файл будет содержать экспортированную переменную.
Теперь, чтобы реализовать это в Matlab, ниже приведен небольшой скрипт, дающий представление о том, чего я пытаюсь достичь.Он вызывает программное обеспечение для каждого запуска и извлекает данные.
for nr=1:NREAL
dlmwrite(‘file.INC’,file(:,nr),’delimiter’,’\n’); % Writes the data file for each run
system('"path\file.dat"'); % calls software
system('"path\Report.rwd" –o "path\Report.rwo"'); % calls report
[a,b]=textread(‘"path\Report.rwo".rwo’,’%f\t%f’); % Reads the data and store it in the variable b
end
Итак, у меня две проблемы:
1) Когда я запускаю этот скрипт в Matlab, он не генерирует выходной файл. Отчет.rwo.Следовательно, он выдает ошибку, когда достигает строки, содержащей функцию 'textread' из-за отсутствия файла.
2) Каждый раз, когда Matlab вызывает отчет (файл .rwd), он запрашивает нажатие клавиши ввода или ввода«д», чтобы выйти.Если предположить, что нужно запустить сотни файлов, то для каждого файла мне будет предложено нажать Enter, чтобы продолжить.Следующая строка вызывает приглашение:
system('"path\Report.rwd" –o "path\Report.rwo"'); % Calls report
ПОСЛЕДНИЕ РЕДАКТИРОВАТЬ: Есть 2 обновления для моей проблемы, как показано ниже:
Обновление 1: Похоже, что часть 2 моей проблемы выше была решена Джейкобом.Работает нормально за один прогон.Однако окончательный результат будет подтвержден только тогда, когда я смогу запустить всю свою программу, которая включает в себя запуск сотен файлов.
Обновление 2: Я могу запустить программное обеспечение и сгенерировать выходной файл, используязапрос командной строки:
**“path\mx200810.exe” –f file.dat**
ПОСЛЕДНИЕ РЕДАКТИРОВАТЬ:
1) Я могу запустить программное обеспечение, избегайтеприглашение нажать клавишу возврата и сгенерировать выходной файл с помощью Matlab с помощью следующих команд:
system('report.exe /f Report.rwd /o Report.rwo')
system('mx200810.exe -f file.dat')
Однако я смог сделать это только после того, как скопировал необходимые файлы .exe и .dll в те же файлы.папка, в которой у меня есть файл .dat.Поэтому я запускаю файл .m через ту же папку, где у меня есть все эти файлы.
2) Однако в командном окне Matlab все еще есть одна ошибка, которая говорит следующее:
"...STOP: Unable to open the following file as data file:
'file.dat'
Check path name for spaces, special character or a total length greater than 256 characters
Cannot find data file named 'file.dat'
Date and Time of End of Run: .....
ans = 0"