运行 模型可执行文件与状态报告并行
Run model executable in parallel with status report
我有一个 Simulink 模型,我从中编译了一个可执行文件。然后,我使用一个包含 2000 万行 'start /B model_name.exe' 的批处理文件 (*.bat),并为每个模拟指定一个输入文件,如下所示:
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”和“-o”可能是用于构建可执行文件的自定义工具的特定选项。我不知道这些是否是通用选项。 input_N.txt 有一个语法:变量名 = 它的值。 report_N.txt 只有一堆信息,例如模拟 运行 时间、日期、时间等。
有没有办法让批处理文件显示(在 Matlab 命令 window 中)哪些案例正在 运行 或者已经执行了多少?它看起来像下面,也许:
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 文件进行计数,并在命令中吐出计数 window.
您可以使用 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
)
(我可以想象,您的 PC 会超出其限制。您应该考虑 )
要获取 *.mat
个文件的数量,您可以使用以下方法计算它们:
for /f %%c in ('dir /b /a-d *.mat ^|find /c /v ""') do set count=%%c
echo There are %count% .mat files.
我有一个 Simulink 模型,我从中编译了一个可执行文件。然后,我使用一个包含 2000 万行 'start /B model_name.exe' 的批处理文件 (*.bat),并为每个模拟指定一个输入文件,如下所示:
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”和“-o”可能是用于构建可执行文件的自定义工具的特定选项。我不知道这些是否是通用选项。 input_N.txt 有一个语法:变量名 = 它的值。 report_N.txt 只有一堆信息,例如模拟 运行 时间、日期、时间等。
有没有办法让批处理文件显示(在 Matlab 命令 window 中)哪些案例正在 运行 或者已经执行了多少?它看起来像下面,也许:
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 文件进行计数,并在命令中吐出计数 window.
您可以使用 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
)
(我可以想象,您的 PC 会超出其限制。您应该考虑
要获取 *.mat
个文件的数量,您可以使用以下方法计算它们:
for /f %%c in ('dir /b /a-d *.mat ^|find /c /v ""') do set count=%%c
echo There are %count% .mat files.