我有一个Simulink模型,我从中编译了一个可执行文件。然后,我使用了一个批处理文件(*.bat(,其中有2000万行"start/B model_name.exe",并为每个模拟指定了一个输入文件,如下所示:
start /B name_mdl.exe -u input_1.txt -o output_1.mat >>report_1.txt
start /B name_mdl.exe -u input_2.txt -o output_2.mat >>report_2.txt
start /B name_mdl.exe -u input_3.txt -o output_3.mat >>report_3.txt
"-u"one_answers"-o"可能是用于构建可执行文件的自定义工具的特定选项。我不知道这些是否是普遍的选择。input_N.txt有一个语法:变量名称=其值。report_N.txt只有一堆信息,如模拟运行时间、日期、时间等。
有没有办法让批处理文件显示(在Matlab命令窗口中(正在运行哪些案例或执行了多少案例?它看起来可能如下:
start /B name_mdl.exe -u input_1.txt -o output_1.mat >>report_1.txt
printf('%d case completed',num_case);
start /B name_mdl.exe -u input_2.txt -o output_2.mat >>report_2.txt
printf('%d case completed',num_case);
它可能只是一个启动上面批处理文件的主批处理文件,但也有一些代码行,让操作系统定期统计当前目录中的*.mat文件,并在命令窗口中吐出计数。
您可以使用for /l
循环。in
子句定义(<start>,<increment>,<end>)
for /l %%i in (1,1,20000000) do (
start /B name_mdl.exe -u input_%%i.txt -o output_%%i.mat >>report_%%i.txt
echo started nr %%i
)
(我可以想象,你的电脑已经超过了它的极限。你应该考虑限制并行进程的数量(
要获得*.mat
文件的计数,可以使用进行计数
for /f %%c in ('dir /b /a-d *.mat ^|find /c /v ""') do set count=%%c
echo There are %count% .mat files.