Запросите размер массивов и характеристики

В этом примере показано, как запросить размер массивов моделей, включая количество вводов и выводов моделей в массиве и измерения массива. Это также показывает, как запросить характеристики моделей в массиве, таких как устойчивость.

Размер массивов

Массивы моделей имеют два различных набора размерностей, размерностей ввода-вывода и измерений массива. Размерности ввода-вывода являются количествами вводов и выводов моделей в массиве. (Каждая модель в массиве должна иметь те же размерности ввода-вывода.) Измерения массива являются размерностями самого массива. Загрузите сохраненный массив моделей и запросите его размерности.

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

Когда вы используете size команда на массиве моделей без выходного аргумента, отображение показывает два набора размерностей.

Чтобы получить измерения массива как числовой массив, используйте size с выходным аргументом.

dims = size(sysarr)
dims = 1×4

     3     1     2     4

Первые две записи в dims размерности ввода-вывода моделей в sysarr, который у каждого есть три выходных параметров и один вход. Остающиеся записи в dims размерности самого массива. Таким образом, sysarr 2 4 массив моделей.

Запрашивать количество размерностей в массиве, а не значения тех размерностей, ndims использования.

dims = ndims(sysarr)
dims = 4

В этом случае, sysarr имеет 4 = 2 + 2 размерности: размерности ввода-вывода (выходные параметры и входные параметры), и измерения массива. Запросите одни только размерности ввода-вывода использование iosize команда.

ios = iosize(sysarr)
ios = 1×2

     3     1

Запросите общее количество моделей в массиве.

N = nmodels(sysarr)
N = 8

Поскольку sysarr 2 4 массив моделей, эта команда возвращает значение 2 × 4 = 8.

Характеристики моделей в массиве

Команды запроса, такие как isproper и isstable работайте над массивами моделей. Например, запросите ли модели в sysarr устойчивы.

Bsiso = isstable(sysarr)
Bsiso = logical
   1

По умолчанию, isstable возвращается 1 (true) если все модели в массиве устойчивы. Команды возвращаются 0 (false) если один или несколько моделей не устойчив. Чтобы выполнить поэлементно запрос массива моделей, используйте 'elem' опция.

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

   1   1   1   1
   1   1   1   1

Теперь isstable возвращает массив булевых значений. Размерности этого массива совпадают с измерениями массива sysarr. Каждая запись в массиве Bsiso указывает ли соответствующая модель sysarr устойчиво. 'elem' опция работает так же на многие команды запроса.

Похожие темы