我有一个3xN的矩阵数据,保存在yaml文件中,长这样:
我想把我的3D数据降维到1D或者2D,然后在QwtPlotCurve上进行可视化。为了实现这个目的,我已经在OpenCV中实现了PCA函数,但是不知道如何从PCA结果中获取计算出来的X和Y坐标。
%YAML:1.0
data1: !!opencv-matrix
rows: 50
cols: 3
dt: d
data: [ 7.1709999084472656e+01, -2.5729999542236328e+01,
-1.4074000549316406e+02, 7.1680000305175781e+01,
-2.5729999542236328e+01, -1.4075000000000000e+02,
7.1639999389648438e+01, -2.5729999542236328e+01,
-1.4075000000000000e+02, 7.1680000305175781e+01,
-2.5729999542236328e+01, -1.4075000000000000e+02, ...
我想把我的3D数据降维到1D或者2D,然后在QwtPlotCurve上进行可视化。为了实现这个目的,我已经在OpenCV中实现了PCA函数,但是不知道如何从PCA结果中获取计算出来的X和Y坐标。
int numOfComponents= 100;
PCA pca(data, cv::Mat(), CV_PCA_DATA_AS_ROW, numOfComponents);
Mat mean= pca.mean.clone();
Mat eigenvalues= pca.eigenvalues.clone();
Mat eigenvectors= pca.eigenvectors.clone();
Mat.at(int row, int col)
,具体说明请参见此处。 - Joseph D.for(int i= 0; i<numOfComponents; ++i) { Mat feature= pca.project(data.row(i)) }
这样做,还是我可以用pca.project(data, resultMat);
投影新的维度? - nasil122002