私はRで定義された行列を持っています。この行列をC++関数に渡し、C++で演算を行う必要があります。 例:Rは、私は「couldnRで行列を定義してC++に渡します
タイプvector<vector<double>>
の変数「データ」が行列Aで初期化するC++関数にこのマトリックスを通過する必要がある、
A <- matrix(c(9,3,1,6),2,2,byrow=T)
PROTECT(A = AS_NUMERIC(A));
double* p_A = NUMERIC_POINTER(A);
の行列を定義しますこれを行う方法を理解しているようです。私はもっと複雑なやり方で考えなければなりません、私はこれを行う簡単な方法があると確信しています。
'ベクトル<ベクトル>'として行列を格納することはかなり愚かです。あなたがメモリの断片化やアライメントの最適化を壊す可能性があります。さらに、メモリにすでに存在し、すぐに使用できるデータをコピーするこのように、これは重大なオーバーヘッドです。 –
mbq