我的目的是顺序运行一系列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
生成的变量?
答案 0 :(得分:3)
您可以在aatest1
结束时将save
所有相关变量添加到mat文件中,并aatest2
开头load
。
您可以在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}中删除文件}}