バス配列の要素への代入
この例では、バス配列内のバスにデータを代入する方法を示します。MATLAB Function ブロックでは、バス配列内のバスにデータを直接代入できます。バス配列内の特定の要素に部分的な代入を行うこともできます。
非バーチャル バスを受け取る MATLAB Function ブロックを含むモデル例を開いてコンパイルします。モデルをコンパイルするには、Simulink® ツールストリップの [モデル化] タブで、[モデルの更新] または [実行] をクリックします。モデルをコンパイルするとライン スタイルが更新されます。このライン スタイルは、バスを視覚的に識別するのに使用できます。
mdl = "ArrayOfBusesPartialAssignment"; open_system(mdl) set_param(mdl,SimulationCommand="Update");
In Bus Element ブロックと Out Bus Element ブロックは、A
という名前の Simulink.Bus
オブジェクトを指定しています。入力バスの階層と指定された属性を表示するには、In Bus Element ブロックをダブルクリックします。
最上位バスは、バス オブジェクト A
によって定義された非バーチャル バスです。要素 a
は boolean 信号です。要素 a1
はバス配列で、バス オブジェクト B
によって定義された非バーチャル バスが 10 個含まれています。バス配列内の各バスは、b
と b1
という名前の要素で構成されています。
MATLAB Function ブロックは、ブロックの入出力のデータ型としてバス オブジェクト A
を指定しています。この指定を表示するには、MATLAB Function ブロックをダブルクリックします。ツールストリップの [関数] タブで [端子とデータの管理] をクリックします。
MATLAB Function ブロックは、関数を使用して、バス配列内の各バスの要素 b
に新しい値を反復して代入します。この関数は、要素 a
にも新しい値を代入します。
function y = fcn(u) y = u; y.a = false; for idx = 1:length(y.a1) y.a1(idx).b = int32(zeros(5,1)); end