Main Content

配列サイズおよび特性の照会

この例では、モデル配列のサイズ (配列内のモデルの入力と出力の数および配列次元を含む) を照会する方法を示します。また、安定性などの配列内にあるモデルの特性を照会する方法も示します。

配列サイズ

モデル配列には、I/O 次元と配列次元の 2 つの異なる次元のセットがあります。I/O 次元は配列内のモデルの入力と出力の数です (配列内の各モデルの I/O 次元は同じでなければなりません)。配列次元は配列自体の次元です。保存されたモデル配列を読み込み、その次元を照会します。

load('queryexample.mat','sysarr')
size(sysarr)
2x4 array of state-space models.
Each model has 3 outputs, 1 inputs, and 3 states.

出力引数のないモデル配列に対して size コマンドを使用すると、2 つの次元セットが表示されます。

配列次元を数値配列として取得するには、出力引数を指定して size を使用します。

dims = size(sysarr)
dims = 1×4

     3     1     2     4

dims の最初の 2 つのエントリは、sysarr 内のモデルの I/O 次元であり、それぞれに 3 つの出力と 1 つの入力があります。dims の残りのエントリは配列自体の次元です。つまり、sysarr は 2 行 4 列のモデルの配列です。

それらの次元の値ではなく配列内の次元の数を照会するには、ndims を使用します。

dims = ndims(sysarr)
dims = 4

この場合、sysarr には 4 = 2 + 2 の次元があります。これは I/O 次元 (出力と入力) および配列次元です。iosize コマンドを使用して I/O 次元だけを照会します。

ios = iosize(sysarr)
ios = 1×2

     3     1

配列内のモデル総数を照会します。

N = nmodels(sysarr)
N = 8

sysarr が 2 行 4 列のモデル配列であるため、このコマンドは 2 × 4 = 8 の値を返します。

配列内のモデルの特性

isproperisstable などのクエリ コマンドは、モデル配列を扱います。たとえば、sysarr 内のモデルが安定しているかどうかを照会します。

Bsiso = isstable(sysarr)
Bsiso = logical
   1

既定では、isstable は配列内のすべてのモデルが安定している場合に 1 (true) を返します。1 つ以上のモデルが安定していない場合は 0 (false) を返します。モデル配列の要素単位の照会を実行するには、'elem' オプションを使用します。

Bsiso = isstable(sysarr,'elem')
Bsiso = 2x4 logical array

   1   1   1   1
   1   1   1   1

isstable はブール値の配列を返します。この配列の次元は sysarr の配列次元と一致します。配列 Bsiso の各エントリは、sysarr の対応するモデルが安定しているかどうかを示します。'elem' オプションは、多くのクエリ コマンドで同様に機能します。

関連するトピック