使用scipy将matlab函数保存到磁盘

时间:2013-03-12 22:29:46

标签: python matlab scipy

使用Python,我想将一个Matlab结构写入磁盘。使用scipy.io模块非常简单:http://docs.scipy.org/doc/scipy-0.9.0/reference/tutorial/io.html

但是,我希望结构的一个字段是@sqrt形式的函数,这样当我在matlab中将.mat文件加载到磁盘时,我得到了这个功能:

>> myStruct = load('MyStruct.mat')
>> myStruct.myFunction(5)
ans =
    2.2361

但我找不到如何做到这一点。简单地将'@sqrt'字符串放入其中一个struct字段中是行不通的。

谢谢!

1 个答案:

答案 0 :(得分:1)

我从未使用过SciPy,但我可以想到一个可能的解决方法。存储函数名称字符串而不是其句柄,并在MATLAB中使用str2func

myfunc = str2func(myStruct.myFunction);
myfunc(5)

如果您确实需要单行,则可以使用feval代替:

feval(myStruct.myFunction, 5)