在 Python 中数据的矩阵操作常常会与 matlab 有数据交互,这就涉及到了在 Python 输出 .mat 文件。下面给出详细代码实现。
存储 .mat 文件,涉及 scipy 中的 io 模块,以及相关方法 savemat 。
主要代码如下:
import numpy, scipy.io
scipy.io.savemat('filename.mat', mdict={'my_data': my_data})
详细实现源码示例如下:
# PCA Pro
Dim_Set = []
for Cat_Num in range(len(Data_Set)):
print "正在干第 "+str(Cat_Num+1)+"/"+str(len(Data_Set))+" 类行为 !!!"
pca = decomposition.PCA()
pca.fit(Data_Set[Cat_Num])
# 累计贡献率 又名 累计方差贡献率 不要简单理解为 解释方差!!!
EV_List = pca.explained_variance_
EVR_List = []
for j in range(len(EV_List)):
EVR_List.append(EV_List[j]/EV_List[0])
for j in range(len(EVR_List)):
if(EVR_List[j]<0.1):
Dim = j
break
Dim_Set.append(Dim)
Dim = max(Dim_Set)
pca = decomposition.PCA(n_components=Dim, copy=True, whiten=False)
for k in range(len(Data_Set)):
Data_Set[k] = pca.fit_transform(Data_Set[k])
scipy.io.savemat('Data_Set.mat', mdict={'Data_Set': Data_Set})
其中 Data_Set 是 由 K 个 array 组成的 list ,各 array 同列不同行,在 matlab 中 读取结果为 Cell 文件。
截图如下 :