我得到两个数据,我想将其作为.mat文件 所以我用了scipy.io和scipy.io.savemat模块 但是当我打开文件时,我得到了: enter image description here
我想获得两列为950x1而不是1x950
这是代码:
import scipy.io as sio
x = Ramanshift1[64:1014]
Hem_I_Nor = pd.Normalization(y3_arpls)
sio.savemat(Hem_path+'/matdata.mat',{'ramanshift':x,'ramanspectra':Hem_I_Nor})
x来自一列 并且Hem_I_Nor来自熊猫,所有这些都可以保存到.csv和两列中
答案 0 :(得分:1)
在一个小小的会话中:
In [25]: from scipy.io import savemat
In [26]: savemat('test.mat', {'x':np.ones((3,),int), 'y': np.ones((3,1),int), 'z
...: ': np.ones((1,3),int)})
在八度会话中,load
之后:
>> size(x),size(y),size(z)
ans =
1 3
ans =
3 1
ans =
1 3
这是被制成(1,n)矩阵的一维数组:
x =
1 1 1
对于2d数组,请观看order
。 MATLAB使用F
。所以
In [31]: np.arange(12).reshape(3,4,order='F')
Out[31]:
array([[ 0, 3, 6, 9],
[ 1, 4, 7, 10],
[ 2, 5, 8, 11]])
另存为
>> w
w =
0 3 6 9
1 4 7 10
2 5 8 11
由于数组/矩阵顺序的固有差异,将值从一个转移到另一个可能会造成混淆。 savemat/loadmat
操作不一定有帮助。
查看文档,还有一个oned_as
参数可以控制将(n,)
数组另存为(n,1)还是(1,n)。