从具有 nrow 和 ncol 的双 **xarray 开始。
xarray = new double *[nrow];
for (i = 0; i < nrow; i++)
xarray[i] = new double[ncol];
用值填充它。
然后创建 double *xtemparray,它是一个维度为 nrow * ncol 的向量。
xtemparray = new double [nrow*ncol];
将 xarray 中的值放入 xtemparray。
for (i = 0; i < nrow; i++) {
for (j = 0; j < ncol; j++)
xtemparray[nrow*i + j] = xarray[i][j];
}
声明矩阵。
MatrixXd xmatrix(nrow, ncol);
然后您可以将 xtemparray 映射到 xmatrix。
xmatrix = Map<Matrix<double,Dynamic,Dynamic,RowMajor>>(xtemparray, nrow, ncol);
将矩阵映射回临时数组:
Map<MatrixXd>(xtemparray, xmatrix.rows(), xmatrix.cols()) = xmatrix;
最后,您可以将 xtemparray 转换为 post xarray。
for (i = 0; i < nrow; i++) {
for (j = 0; j < ncol; j++)
xpostarray[i][j] = xtemparray[nrow*i + j];
}