MATLAB Functionを用いた可変サイズのデータの出力方法
31 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Osamu Sekino
am 14 Jul. 2018
Beantwortet: Naoya
am 24 Jul. 2018
MATLAB Functionの入力として行の数を入力し、その入力した行数の0が出力されるようなモデルを作成したいと考えています。
上記のように、Constantブロックで作成したい行数を入力しております。
MATLAB Functionの中身は下記のようになっております。
function y = fcn(u)
y = zeros(u,1);
これでDisplayに5行の0というデータが出るようにしたいのですが、下記のようなエラーが発生します。
データ 'y' は可変サイズの行列と推定されますが、モデル エクスプローラーのプロパティでは継承されたサイズまたは固定サイズと指定されています。[可変サイズ] チェック ボックスをオンにし、サイズのフィールドで上限を指定してください。
そこで、yという変数を可変サイズに設定し、サイズの上限を定義しました。
しかしながら次は下記のようなエラーが発生します。
計算された最大サイズは有界ではありません。
静的なメモリ割り当ては、すべてのサイズが有界である必要があります。
計算されたサイズは [:? x 1] です。
上記内容はどのように解決できますでしょうか。
※諸事情により、Constantブロックでの行数の定義は必要となります。 ※特定のハードウェア向けのコード生成をしたく、当モデルを作成しております。
0 Kommentare
Akzeptierte Antwort
Naoya
am 24 Jul. 2018
assert 関数と関係演算子を使い、u に対して明示的にの上限を設定することで問題が回避できます。
以下はMATLAB Function ブロック内部のソースコード修正例となります。
function y = fcn(u)
assert(u<=10);
y = zeros(u,1);
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu User-Defined Functions finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!