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 次元配列ではない理由がわかりません。どんな助けでも大歓迎です。
ありがとう