Извините, я новичок в C ++.Поэтому я не использую указатели.Мне нужно преобразовать статический 2d массив C ++ в формат библиотеки Eigen.Мне нужно вычислить собственные значения и собственные векторы большой матрицы, поскольку это моя прикладная задача.
Мой код похож на
double matr1[100][100];
MatrixXd copy_matr1;
for (int i = 0; i < 100; i++)
for (int j = 0; j < 100; j++)
matr1[i][j] = i + j;
copy_matr1 = Map<MatrixXd>(matr1);
или (с заменой последней строки на следующую)
copy_matr1 = Map<MatrixXd>(matr1, 100, 100);
Но последняя строка неверна.Что такое правильная запись?
Но приведенный ниже код (который преобразует статический 1d массив C ++ в формат Eigen библиотеки) является правильным.Я не могу понять, где ошибка в предыдущем фрагменте.
double arr1[100];
MatrixXd copy_arr1;
for (int i = 0; i < 100; i++)
arr1[i] = i + 10;
copy_arr1 = Map<MatrixXd>(arr1);
или (с заменой последней строки на следующую)
copy_arr1 = Map<MatrixXd>(arr1, 100);
Большое спасибо заранее!