Все неопределенные системные классы (uss
, ufrd
) могут быть многомерными массивами. Это предназначено для обеспечения той же функциональности, что и LTI-массивы программного обеспечения Control System Toolbox™. Область команды size
возвращает вектор-строку с размерами всех размерностей.
Первые две размерности соответствуют выходам и входам системы. Любые размеры за пределами называются измерениями массива. Следовательно, если szM = size(M)
, затем szM(3:end)
являются размерами измерений массива M
.
Для этих типов объектов ясно, что первые две размерности (выход системы и вход) интерпретируются по-разному по сравнению с 3-м, 4-м, 5-м и более высоким размерностями (которые часто моделируют параметризованную изменчивость в поведении ввода/вывода системы).
umat
объекты обрабатываются таким же образом. Первые две размерности являются строками и столбцами неопределенной матрицы. Любые размерности за пределами являются измерениями массива.
Предположим M
является umat
, uss
или ufrd
, и что Yidx
и Uidx
являются векторами целых чисел. Тогда
M(Yidx,Uidx)
выбирает выходы (строки), на которые ссылаются Yidx
и входы (столбцы), на которые ссылаются Uidx
, сохранение всех измерений массива. Для примера, если size(M)
равен [4 5 3 6 7]
, затем (для примера) размер M([4 2],[1 2 4])
является [2 3 3 6 7]
.
Если size(M,1)==1
или size(M,2)==1
, затем допускается одно индексирование входов или выходов (строки или столбцы). Если Sidx
является вектором целых чисел, тогда M(Sidx)
выбирает соответствующие элементы. Все измерения массива сохранены.
Если есть K
измерения массива и idx1, idx2, ..., idxK
векторы целых чисел, тогда
G = M(Yidx,Uidx,idx1,idx2,...,idxK)
выбирает выходы и входные параметры, на которые ссылаются Yidx
и Uidx
, соответственно, и выбирает из каждого измерения массива « срезов», на которые ссылается idx1, idx2,..., idxK
векторы индекса. Следовательно, size(G,1)
равен length(Yidx), size(G,2)
равен length(Uidx), size(G,3)
равен length(idx1), size(G,4)
равен length(idx2)
, и size(G,K+2)
равен length(idxK)
.
Если M
имеет K
измерения массива и менее K
векторы индекса используются при выполнении ссылки на массив, затем MATLAB® выполняется условие для одиночного индексирования. Для образца предположим size(M)
равен [3 4 6 5 7 4]
. Выражение
G = M([1 3],[1 4],[2 3 4],[5 3 1],[8 10 12 2 4 20 18])
является допустимым. Результат имеет size(G)
равен [2 2 3 3 7]
. Последний вектор индекса [8 10 12 2 4 20 18]
используется для ссылки в массив 7 на 4, сохраняя порядок, диктуемый одним индексированием MATLAB (например, 10-й элемент массива 7 на 4 является элементом в (3,2) положении в массиве).
Обратите внимание, что если M
имеет либо один выход (строку), либо один вход (столбец), и
M имеет измерения массива, тогда не допустимо совмещать одну индексацию в размерностях вывода/входа наряду с индексацией в измерениях массива. Это приведет к неоднозначности в том, как интерпретировать второй вектор индекса в выражении (т.е. «соответствует ли он ссылке на вход/выход или соответствует первому измерению массива?»).