Все неопределенные системные классы (uss
, ufrd
) могут быть многомерные массивы. Это предназначается, чтобы обеспечить ту же функциональность как массивы LTI программного обеспечения Control System Toolbox™. Команда size
возвращает вектор-строку с размерами всех размерностей.
Первые две размерности соответствуют выходным параметрам и входным параметрам системы. Любые размерности вне упоминаются как измерения массива. Следовательно, если szM = size(M)
, затем szM(3:end)
размеры измерений массива M
.
Для этих типов объектов ясно, что первые две размерности (система выход и вход) интерпретированы по-другому по сравнению с 3-ми, 4-ми, 5-ми и более высокими размерностями (который часто модель параметризовала изменчивость в системном поведении ввода/вывода).
umat
объекты обработаны таким же образом. Первые две размерности являются строками и столбцами неопределенной матрицы. Любые размерности вне являются измерениями массива.
Предположим M
isa 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])
isvalid. Результат имеет size(G)
равняется [2 2 3 3 7]
. Последний вектор индекса [8 10 12 2 4 20 18]
используется к ссылке в 7 4 массив, сохраняя порядок, продиктованный MATLAB одна индексация (e.g., 10-й элемент массива 7 4 массив является элементом в (3,2) положение в массиве).
Обратите внимание на то, что, если M
имеет или один выход (строка) или один вход (столбец) и
M
имеет измерения массива, затем это не допустимо, чтобы объединить одну индексацию в размерностях выхода/входа наряду с индексацией в измерениях массива. Это приведет к неоднозначности в том, как интерпретировать второй вектор индекса в выражении (i.e., “это соответствует ссылке ввода/вывода, или это соответствует первому измерению массива?”).