simulinkにお​けるM-functi​onでのforループ​について

simulinkにおけるM-function内で以下例のように,forループを使ってある配列を作成したく思っています.
x = zeros();
for i = 1:10
x(i) = 10*i
end
しかし,以下のようにエラーが発生してしまいます.
”・インデックスが配列の次元を超えています。インデックス値 2 が、配列 'x' の有効範囲 [1-1] を超えています。コード生成では、end+1 を使用する場合を除き、インデックス付けによる配列の増加はサポートされません。”
代替の方法,もしくはエラーの解決方法をご教示いただけないでしょうか?
よろしくお願いいたします.

 採用された回答

Shoumei
Shoumei 2025 年 3 月 28 日

0 投票

x = zeros();
で作成している変数の要素数は1となっており、その後のForループのインデックスで存在しない要素にアクセスしているためエラーが生じています。
以下のように書き直すとエラーが解決すると思います。
x = zeros(10,1);
試してみて下さい。

1 件のコメント

貴弘
貴弘 2025 年 3 月 28 日
ありがとうございます!

サインインしてコメントする。

その他の回答 (0 件)

製品

リリース

R2023a

質問済み:

2025 年 3 月 26 日

コメント済み:

2025 年 3 月 28 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!