我有一个矩阵 [3,15000]。我需要计算原始矩阵的协方差矩阵,然后找到它的特征值。
以下是我的代码的一部分:
double[,] covarianceMatrix = new double[numberOfObjects,numberOfObjects];
for (int n=0; n<numberOfObjects;n++)
{
for (int m=0;m<numberOfObjects;m++)
{
double sum = 0;
for (int k=0; k<TimeAndRepeats[i,1]; k++)
{
sum += originalMatrix[k,n]*originalMatrix[k,m];
}
covarianceMatrix[n,m] = sum/TimeAndRepeats[i,1];
}
}
alglib.smatrixevd(covarianceMatrix,numberOfObjects,1,true,out eigenValues, out eigenVectors);
这里的NumberOfObjects大约有15000个。
当我计算较少数量的对象时,一切正常,但对于所有数据,我都会遇到异常。
有可能解决这个问题吗?
我使用的操作系统是macOS,x64位。
我的开发环境是MonoDevelop。