Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中pca的系数不是一个p*p矩阵_Matlab_Pca - Fatal编程技术网

matlab中pca的系数不是一个p*p矩阵

matlab中pca的系数不是一个p*p矩阵,matlab,pca,Matlab,Pca,我的数据矩阵是X,它是4999*37152。然后我在Matlab中使用这个命令: [coeff,score,潜伏期,tsquared1,explained1]=pca(X) 输出:coeff为37152*4998,score为4999*4998,潜在为4998*1。根据,系数应该是p*p。那么我的代码有什么问题 正如Matlab文档所说,“X行对应于观测值,列对应于变量”。因此,在一个矩阵中,37152个观测值中只有4999个观测值。几何上,在37152维空间中有4999个点。这些点包含在一个4

我的数据矩阵是
X
,它是
4999*37152
。然后我在Matlab中使用这个命令:
[coeff,score,潜伏期,tsquared1,explained1]=pca(X)


输出:
coeff
37152*4998
score
4999*4998
潜在
4998*1
。根据,系数应该是p*p。那么我的代码有什么问题

正如Matlab文档所说,“X行对应于观测值,列对应于变量”。因此,在一个矩阵中,37152个观测值中只有4999个观测值。几何上,在37152维空间中有4999个点。这些点包含在一个4998维仿射子空间中,因此Matlab可以得到4998个方向(每个方向表示为一个包含37152个分量的向量)

有关更多信息,请参阅统计网站:

MATLAB文档是在假设您至少有与变量一样多的观察值的情况下编写的,这是人们通常使用PCA的方式

当然,有可能你的数据实际上有37152个观察值,4999个变量,在这种情况下你需要转换X