私はMATLAB/C++ APIを使用しています。C++ MATLAB APIで2D配列を定義
2D C++配列から2D MATLAB配列を作成しようとしています。
double testCppArr[243][5];
// Fill the testCppArr with data
mwArray *testMatlabArr = new mwArray(243, 5, mxDOUBLE_CLASS);
testMatlabArr->SetData(testCppArr[0], 243 * 5);
をそして、私が代わりに243行5列の行列で、243×5の長さを持つベクトルのためにそれが作成されています:ここで私が試したものです。私はそれがメモリ内で同じことを知っていますが、ベクトルではなく行列を作成したいと思います。
どこが間違いですか?
私はまたthe MATLAB documentationを読んだが、問題の解決
私はあなたがC++(エキスパートではない)でそうすることはできないと思います。私が知る限り、2D行列を埋めるには、ループでそれを埋める必要があります(243)。さらに。 MATLABのデータは本質的に1Dです(たとえ2D行列を作成してもメモリ内に1Dです)ので、2D行列をC++の2D行列にコピーすることはできますが、MATLABは1Dなので。 –
@AnderBiguri、ありがとう。反復コピーの例がありますか? – Evyatar
C++での2D配列のmemcopyの例は良いスタート地点です –