我有一个25x4x3的Cell数组,我已将其保存到.mat文件中,现在需要加载到Python中。
我熟悉的一个简单的.mat文件,但对Python来说是新手,这个问题有点过头了。 25个维度和4个维度表示我稍后需要在代码中调用的整数。单元格数组中的3维包含日期时间数组,数据列表,然后包含该数据的更多字符标签数组。
e.g。 (的伪代码)
.mat(1,1,1) = datetime arrays;
.mat(1,1,2) = data corresponding to datetime arrays;
.mat(1,1,3) = labels for each column in that data.
显然我需要用loadmat('.mat')
将它加载到Python中,然后我感到困惑,因为我的变量资源管理器没有显示.mat文件。我不知道如何分开内容以正确地转换datettime
索引,数字到浮点数等。
任何指导都将不胜感激!
现在我只是:
filemat = 'Pdata.mat'
Pdata = sio.loadmat(filemat)
它正在将.mat作为对象加载。
答案 0 :(得分:1)
你几乎就在那里。
首先让我构建一些示例matlab数据:
a = num2cell(rand(25,4,3));
a{13} = 'abc';
save('/tmp/tmp4Python.mat','a')
现在用Python加载
import scipy.io
mat = scipy.io.loadmat('/tmp/tmp4Python.mat')
并分配变量
a = mat['a']
现在,如果我们想要访问'abc'
字符串,我们按如下方式进行操作(请注意,Python索引从0开始,而MATLAB索引从1开始):
a[12][0][0]
答案 1 :(得分:0)
如何分配仅包含范围值“ a”的变量?是否可能这样?
x1 = mat['a', range(1, 20, 1)]