我有一个矩阵 [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