2013-07-11 56 views
1

我用python醃製了一本字典。 我想在matlab代碼中使用此字典的值。 這可能嗎?用matlab檢索python對象

+2

看起來這個問題已經在Mathworks論壇上討論過了http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/290116。另外谷歌搜索給了很多Json解析器的Matlab。 –

+1

是否有可能返回到您的Python代碼並使用'scipy.io.savemat'代替保存字典? – kitchenette

+1

如果不考慮絕對速度和內存,爲什麼不把它們寫入python文件然後在MATLAB中處理它們? – voxeloctree

回答

1

在Matlab字典可通過以下方式來使用:

keys={'a','b','c'}; 
values={5,6,7}; 
c = containers.Map(keys,values); 
c = 

    containers.Map handle 
    Package: containers 

    Properties: 
     Count: 3 
     KeyType: 'char' 
    ValueType: 'double' 

所以,你可以生成類似下面的Python一個.m文件(同時考慮鍵和值是實數):

keys="keys = {"+",".join([str(k) for k in python_dict])+"};" 
values="values = {"+",".join([str(python_dict[k]) for k in python_dict])+"};" 
fh=open("mfile.m","w") 
fh.write("%s\n%s\n" % (keys,values)) 
fh.write("c = containers.Map(keys, values);\n") 
fh.close() 

然後你可以在Matlab中加載這個文件。