2016-05-04 22 views
2

私は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を読んだが、問題の解決

+0

私はあなたがC++(エキスパートではない)でそうすることはできないと思います。私が知る限り、2D行列を埋めるには、ループでそれを埋める必要があります(243)。さらに。 MATLABのデータは本質的に1Dです(たとえ2D行列を作成してもメモリ内に1Dです)ので、2D行列をC++の2D行列にコピーすることはできますが、MATLABは1Dなので。 –

+0

@AnderBiguri、ありがとう。反復コピーの例がありますか? – Evyatar

+0

C++での2D配列のmemcopyの例は良いスタート地点です –

答えて

0

コードが2D MATLAB行列を定義見つけることができませんでした。 マトリックスデータの読み込みに問題がありました。

+0

最終コードを教えてください。 –

+0

@RodyOldenhuis、2次元マトリックスコードを定義しますか?もしそうなら、これは問題のコードです – Evyatar