MATLAB Function ブロック変数のサイズの指定
[シンボル] ペインとプロパティ インスペクター、またはモデル エクスプローラーを使用して、MATLAB Function ブロックの変数のサイズを指定できます。MATLAB Function ブロックでは、スカラー、ベクトル、または行列を使用できます。変数のプロパティの作成、削除、設定の詳細については、MATLAB Function ブロックの変数の作成と定義と変数のデータ型の定義と変更を参照してください。変数がサイズを継承するように設定することも、サイズを手動で指定することもできます。
Simulink からのサイズの継承
サイズの既定の設定は -1
です。これは変数が以下の [スコープ] プロパティの値に基づいてそのサイズを継承することを示します。
スコープ | 説明 |
---|---|
入力 | 関連付けられている入力端子に接続されている Simulink® 信号からサイズを継承します。 |
出力 | 関連付けられている出力端子に接続されている Simulink 信号からサイズを継承します。 |
パラメーター | 関連付けられている Simulink または MATLAB® パラメーターからサイズを継承します。MATLAB Function ブロック パラメーター変数の設定を参照してください。 |
[スコープ] プロパティが [データ ストア メモリ]
に設定されている変数は、常にサイズを継承します。
可変サイズのカスタマイズ
変数のサイズはスカラー、ベクトルまたは行列として手動で設定することもできます。サイズをスカラーとして指定するには、[サイズ] を 1
に設定するか、パラメーターをオフにします。サイズをベクトルまたは行列として指定するには、正の整数の行ベクトルを [row column]
の形式で入力します。たとえば、サイズが 6 の列ベクトルを定義するには、[サイズ] プロパティを [6 1]
に設定します。サイズが 5 の行ベクトルを定義するには、[サイズ] プロパティを [1 5]
に設定します。データ サイズが 3 行 3 列の行列を定義するには、[サイズ] プロパティを [3 3]
に設定します。
メモ
R2021b より前は、MATLAB Function ブロックは列ベクトルを 1 次元データとして出力していました。R2021b 以降では、MATLAB Function ブロックは既定の設定でその次元を保持します。従来の動作を維持するには、プロパティ インスペクターまたはモデル エクスプローラーで [出力列ベクトルを 1 次元データとして解釈] プロパティをオフにします。このプロパティをオフにすると、[サイズ] で単一の整数を使用して出力列ベクトルのサイズを定義できます。出力列ベクトルを 1 次元データとして解釈を参照してください。
また、[サイズ] プロパティを式によって設定することもできます。式には以下を含めることができます。
これらの式は、[row column]
形式で入力された 1 つの正の整数または 2 つの正の整数を出力しなければなりません。そうでない場合、指定されたサイズはモデルのコンパイル時にエラーを発生します。たとえば、[スコープ] プロパティがすべて [パラメーター]
に設定された変数 k
、x
、および y
をもつ MATLAB Function ブロックについて考えてみます。ここで、k
は正の整数、x
および y
は行列です。ブロックに対して新しい変数を作成する場合、以下のいずれかの式を使用して [サイズ] プロパティを定義できます。
k+1 size(x) min(size(y))
シミュレーションおよびサイズの一致
モデルのビルドを実行した後、モデル エクスプローラーの [コンパイルされたサイズ] 列にシミュレーションで使用された実際のサイズが表示されます。[サイズ] プロパティの値が -1
でなく、実際のサイズと一致しない場合、モデルのコンパイル中に不一致エラーが発生します。