我有一个包含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中手动执行?这是我工作流程的重要部分....