0

Matlab Coder を使用して Matlab 関数を C++ に変換しました。入力は の 1 次元配列で:Infx1、関数 matlab の出力は 2 次元配列です。を使用してこれ(出力)を初期化します

result = zeros(500,18); 

countメイン ループ内で、 1 から 500 まで変化する変数を維持し、ループの終了前に次を使用して出力配列を埋めます。

result(count,:) = blocks;

ここで、blocks はループごとに計算される 18x1 ベクトルです。

変換された C++ ファイルresultでは、2 次元配列であると想定しています。しかし、たまたま、出力が次の式で与えられるベクトルになります。

for (loop_ub = 0; loop_ub < 18; loop_ub++) {
           result[(count + 500 * loop_ub) - 1] = blocks[loop_ub];
        }

の初期化は次のresultように見ることができます

memset(&result[0], 0, 9000U * sizeof(real_T));

これが 2 次元配列ではない理由がわかりません。どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1