在进行数据处理的时候,我比较喜欢的数据存储方式是所有的数据都保存成MATLAB的“.mat”文件,这种格式Python,Mathematica,MATLAB都会支持。不过在转化的时候得注意,特别是涉及到1维矩阵转化为多维矩阵的操作时,MATLAB与Pythonh,Mathematica有本质的不同,MATLAB是按照先“列”后“行”的顺序存数据的,而Mathematica和Python是按照先“行”后“列”的顺序存数据,具体的,我们可以用一个例子来说明: 我们定义矩阵A
,将A转化为1维矩阵A1D
再转化回来为B
.
MATLAB
首先是MATLAB
A=[[1,2,3];[4,5,6];[7,8,9]];
A1D=A(:);
B=reshape(A,[3,3]);
>> 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
时也是按照列来折叠形成$3times 3$的矩阵的。
Python
可以看见A
变成A1D
时是把每一行拼接起来形成一维矩阵。A1D
变成B
时也是按照行来折叠形成$3times 3$的矩阵的。
Mathematica
可以看见A
变成A1D
时是把每一行拼接起来形成一维矩阵。A1D
变成B
时也是按照行来折叠形成$3times 3$的矩阵的。
总结,MATLAB是很特殊的一种存储方式。转化时得特别注意。