如何使用Matlab Engine API for Python将.mat文件加载到工作区中?

时间:2017-05-26 10:05:04

标签: python matlab

我有一个包含4个字符变量的.mat工作区文件。这些变量包含我需要能够cd相对快速地进出的各种文件夹的路径。通常,当仅使用Matlab时,我可以按如下方式加载此工作空间(假设.mat文件位于当前目录中)。

load paths.mat

目前我正在尝试使用Python的Matlab Engine API。 Matlab help docs建议使用以下Python公式将变量发送到桌面应用程序中的当前工作区:

import matlab.engine
eng = matlab.engine.start_matlab()
x = 4.0
eng.workspace['y'] = x
a = eng.eval('sqrt(y)')
print(a)

效果很好。但是.mat文件的重点在于它可以快速加载用户熟悉的整个 变量。因此,在尝试加载工作区时,上述操作无效。

我还在Python中尝试了两种不同的变体:

eng.load("paths.mat")
eng.eval("load paths.mat")

第一个变体在Python中成功加载一个包含所有四个键和值的dict变量,但这不会传播到Matlab中的工作区。第二个变体引发错误:

  

文件“”,行未知语法错误:错误:意外的MATLAB   表达

如何通过引擎加载工作区而无需在Matlab中手动执行?这是我工作流程的重要部分....

0 个答案:

没有答案