Обычно, когда мы пишем функцию в c ++ для анализа 2D-массива, она проходит через первую строку и затем переходит во вторую.
for(int i = 0; i < ROW_SIZE; i++){
for(int j = 0; j < COL_SIZE; j++){
*((Mat+i*COL_SIZE) + j) = value;
}
}
Однако, когда я использую Rcpp :: NumericMatrix, она анализируетсначала через столбцы.
// [[Rcpp::export]]
NumericMatrix TestMatrixParsing(){
NumericMatrix xx(4, 5);
int xsize = xx.nrow() * xx.ncol();
for (int i = 0; i < xsize; i++) {
xx[i] = i+100;
}
return xx;
}
/*** R
TestMatrixParsing()
# [,1] [,2] [,3] [,4] [,5]
# [1,] 100 104 108 112 116
# [2,] 101 105 109 113 117
# [3,] 102 106 110 114 118
# [4,] 103 107 111 115 119
*/
Есть ли способ заставить его анализировать строки, так как мой предыдущий код был написан так, чтобы матрица сохранялась в виде последовательных строк, поэтому указатель не должен перескакивать, равный COL_SIZE.