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