В этом примере показано, как запросить размер массивов модели, включая количество входов и выходов моделей в массиве, а также размеры массива. Также показано, как запрашивать характеристики моделей в массиве, например стабильность.
Массивы модели имеют два различных набора размеров: размеры ввода-вывода и размеры массива. Размеры ввода-вывода - это количество входов и выходов моделей в массиве. (Каждая модель в массиве должна иметь одинаковые размеры ввода-вывода.) Размеры массива - это размеры самого массива. Загрузите сохраненный массив модели и запросите его размеры.
load('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' работает аналогично для многих команд запроса.