Home > Back-end >  YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR sparse matrix to solve the mistake
YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR sparse matrix to solve the mistake

Time:12-20

The code is as follows:
SparseMatrix & lt; Double & gt; A (4, 4);
STD: : vector & lt; Triplet & lt; Double & gt;> Triplets.
Typedef Eigen: : Triplet T;//triples (row, column, values)
//initialize a non-zero element
Int r [3]={0, 1, 2};
Int [3] c={1, 2, 2};
Double val [3]={6.1, 7.2, 8.3};
For (int I=0; I & lt; 3; I++)
[I] triplets. Emplace_back (T (r, c [I], val [I]));
//initialize the sparse matrix
A. setFromTriplets (triplets. The begin (), triplets. The end ());
STD: : cout & lt; //a QR decomposition instance
SparseQR & lt; SparseMatrix & lt; Double & gt; , AMDOrdering & lt; Int & gt;> Qr.
//calculation down
Qr. Compute (A);
An A//o x=b
Vector4d b (1, 2, 3, 4);
Vector4d x=qr. Solve (b);
STD: : cout & lt; <"X=\ n" & lt; STD: : cout & lt; <"A x=\ n" & lt; return ;
An error:
YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR
Trouble ask under specific which line of code is wrong,
  • Related