在执行MATLAB文件和Python脚本之间交替

时间:2015-03-25 05:00:17

标签: python bash matlab sh

我有一个MATLAB文件,目前将其变量保存到.mat工作区。 python脚本使用SciPy.io从工作区读取这些变量。 python脚本执行一些操作&将变量重新存入MATLAB工作空间(使用Scipy.io),然后重新打开matlab。我正在使用MATLABR2013a,我不认为有一种从.m文件本身运行python脚本的简单方法。

可能有一种比我正在进行的方法更简单的方法,但我目前的计划是创建一个运行matlab文件的bash脚本,如果是随机变量(存储在另一个文件中,则只进入后一部分) )具有一定的价值。然后脚本调用python脚本,将随机变量设置为不同的(可以作为一种布尔值查看)。然后,matlab脚本将执行第二部分,但不执行第一部分。我需要有大约5或6个这样的独占部分,并且将它们全部放在同一个.m文件中比分离它们更容易

这看起来很乏味但是当我真正想要的是让系统暂停matlab脚本的方法时,运行python脚本并回到matlab脚本中的那个位置。

感谢所有创意建议,使此工作流程尽可能高效且易于修改

1 个答案:

答案 0 :(得分:1)

MATLAB代码详述如下

  1. 我使用MATLAB的保存功能
  2. 保存了工作区
  3. 使用MATLAB的system()函数执行python脚本。
  4. 在python中,使用scipy.iosavemat保存我想在matlab中访问的变量
  5. 使用MATLAB的加载函数将python中的变量加载回matlab的工作区

    writeto=['insert path to save to here']
    save(writeto)
    first_Pypath=['insert path of python script here']
    py_call=horzcat('python ',first_Pypath);
    system(py_call);