MATLAB #Python #Dataprocessing

在进行数据处理的时候,我比较喜欢的数据存储方式是所有的数据都保存成MATLAB的“.mat”文件,这种格式Python,Mathematica,MATLAB都会支持。不过在转化的时候得注意,特别是涉及到1维矩阵转化为多维矩阵的操作时,MATLAB与Pythonh,Mathematica有本质的不同,MATLAB是按照先“列”后“行”的顺序存数据的,而Mathematica和Python是按照先“行”后“列”的顺序存数据,具体的,我们可以用一个例子来说明:
我们定义矩阵A,将A转化为1维矩阵A1D再转化回来为B.

MATLAB

首先是MATLAB

1
2
3
A=[[1,2,3];[4,5,6];[7,8,9]];
A1D=A(:);
B=reshape(A,[3,3]);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
>> A

A =

1 2 3
4 5 6
7 8 9

>> A1D'

ans =

1 4 7 2 5 8 3 6 9

>> B

B =

1 2 3
4 5 6
7 8 9

可以看见A变成A1D时是把每一列拼接起来形成一维矩阵。A1D变成B时也是按照列来折叠形成的矩阵的。

Python


可以看见A变成A1D时是把每一行拼接起来形成一维矩阵。A1D变成B时也是按照行来折叠形成的矩阵的。

Mathematica


可以看见A变成A1D时是把每一行拼接起来形成一维矩阵。A1D变成B时也是按照行来折叠形成的矩阵的。

总结,MATLAB是很特殊的一种存储方式。转化时得特别注意。