1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing ;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Meta.Numerics.Matrices;
double[,] ptsImgOne = new double[3, 5];
double[,] ptsImgTwo = new double[3, 5];
ptsImgOne = new double[,] { { 0.41726, 0.94478, 0.33771, 0.11120, 0.24169 },
{ 0.04965, 0.49086, 0.90005, 0.78025, 0.40391},
{ 0.90271, 0.48925, 0.36924, 0.38973, 0.09645 } };
ptsImgTwo = new double[,] { { 0.13197, 0.57520, 0.35315, 0.04302, 0.73172 },
{ 0.94205, 0.05977, 0.82119, 0.16899, 0.64774 },
{ 0.95613, 0.23477, 0.01540, 0.64911, 0.45092 } };
RectangularMatrix q1 = new RectangularMatrix(ptsImgOne);
RectangularMatrix q2 = new RectangularMatrix(ptsImgTwo);
RectangularMatrix Qmultiply = new RectangularMatrix(5, 9);
for (int i = 0; i < q2.ColumnCount; i++)
{
Qmultiply[i, 0] = q1[0, i] * q2[0, i];
Qmultiply[i, 1] = q1[1, i] * q2[0, i];
Qmultiply[i, 2] = q1[2, i] * q2[0, i];
Qmultiply[i, 3] = q1[0, i] * q2[1, i];
Qmultiply[i, 4] = q1[1, i] * q2[1, i];
Qmultiply[i, 5] = q1[2, i] * q2[1, i];
Qmultiply[i, 6] = q1[0, i] * q2[2, i];
Qmultiply[i, 7] = q1[1, i] * q2[2, i];
Qmultiply[i, 8] = q1[2, i] * q2[2, i];
}
SingularValueDecomposition singValDec= Qmultiply.SingularValueDecomposition();
}
}
}
내가 매트릭스 작업과 SVD를 계산하기 위해 Meta.Numerics.Matrices을 사용하고
,
하지만 컴파일러에 도착 할 때마다 마지막 코드 행 :
"SingularValueDecomposition singValDec = Qmultiply.SingularValueDecomposition();"
이라는 오류 메시지가 나타납니다. 배열 범위가 인 것으로 나타났습니다. Qmultiply 배열과 나머지 배열에 대한 경계를 두 번 확인했습니다. 디버깅을 시도했지만 오류가 지속됩니다.
누구든지이 문제를 해결할 수 있습니까?** 지수는 SVD 계산 사용 Meta.Numeric.Matrices와 함께 ** 배열의 범위 outisde했다