在Windows操作系统上批量运行多个m文件“不”关闭以前运行的m文件

时间:2014-07-08 11:56:57

标签: python matlab batch-file batch-processing

我的目的是顺序运行一系列m文件和python程序。

感谢Mofi,Shai和moarningsun,我发现这个批处理文件在我的Windows操作系统上是成功的:

start "01" /wait "C:\Program Files\MATLAB\R2012a\bin\matlab.exe" -wait -r "aatest1; exit;"
start "02" /wait "C:\python27\python.exe" python.py input.xlsx
start "03" /wait "C:\Program Files\MATLAB\R2012a\bin\matlab.exe" -wait -r "aatest2; exit;"

它将运行aatest1.m,然后python.py,然后aatest2.m

但是,由于这会在运行aatest1.m后关闭MATLAB,aatest2.m无法使用aatest1.m生成的变量。

如何对批处理进行编码,以便aatest2.m可以使用aatest1.m生成的变量?

2 个答案:

答案 0 :(得分:3)

选项1:

您可以在aatest1结束时将save所有相关变量添加到mat文件中,并aatest2开头load

选项2:

您可以在matlab中运行python脚本(不终止aatest1) 使用matlab的system命令在Matlab中运行python脚本

[status,cmdout] = system( 'C:\python27\python.exe python.py input.xlsx' );

答案 1 :(得分:2)

我建议您将要从aatest1.m传递到aatest2.m的变量及其值的名称写入文件,格式如下:

variable1=value
variable2=value

aatest1.m使用变量及其值的名称创建此文件,aatest2.m从文件中读取值并使用这些值初始化相应的变量。

如果没有MATLAB函数直接从{{1}中删除文件}}