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