我一直在用python加载一些文件,然后在加载文件后,我想将它们导出到一个.mat文件中,并在MATLAB中完成其余的处理。我知道我可以这样做:
import scipy.io as sio
# load some files, assign loaded data to variables
# ...
sio.savemat(filename,mdict)
我知道这里发生了什么,并将其语法理解为:
alist = [5,3,6]
sio.savemat('small_list.mat',mdict={'alist':alist})
有人能确切地解释我在sio.savemat()
参数的第二部分,即mdict = {'alist':alist}
中所做的事情吗?我可能只是对一些更为python(我对Python比较新,并且来自C++的背景),但我很困惑MCDIt术语在语法的哪些部分做了什么(在MATLAB中引用了我的变量名,以及Python中的未引用的我的变量)。
另外,如果我想在一个.mat
文件中保存(然后在MATLAB中加载)几个不同的变量,这会是什么样子?
根据文档,
savemat
定义为因此,第二个参数是必需的,并且可以提供或不提供
mdict=...
部分。它之所以希望这是一个字典,是因为它需要知道保存变量(数据)的名称。如果它接受一个变量,它就必须组成一个名称。在Python语法中,这两个expresion将相同的内容传递给
foo
。名称“alist”不会以任何方式传递给foo
。loadmat
还返回字典,例如:当我在
octave
中load text.mat
时,工作区中会出现一个alist
变量。函数形式
load
产生structure
对应的
octave
函数形式是save
其中
"v1"
是要保存的变量的名称。octave/MATLAB
从全局命名空间中提取这些变量的值。在Python中,这种操作(更强烈)是不可取的。在
octave
中加载为除了页眉内容,它是一样的。
相关问题 更多 >
编程相关推荐