2013-03-12 58 views
1

使用Python,我想寫一個Matlab結構到磁盤。這是相當簡單的使用scipy.io模塊:http://docs.scipy.org/doc/scipy-0.9.0/reference/tutorial/io.html使用scipy將matlab函數保存到磁盤

不過,我想該結構的領域之一是形式@sqrt這樣,當我加載.MAT文件保存到磁盤在MATLAB中,我得到的功能此功能:

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

但我找不到如何做到這一點。只需將「@sqrt」字符串放入其中一個結構字段中即可。

謝謝!

回答

1

我從未與SciPy合作過,但我可以想到一種可能的解決方法。存儲函數名字符串,而不是它的手柄,並在MATLAB使用str2func

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

如果你真的需要一行代碼,你可以用feval代替:

feval(myStruct.myFunction, 5) 
+1

正是我需要的。謝謝! – lollercoaster 2013-03-13 01:01:16