Все неопределенные системные классы (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])
isvalid. Результат имеет size(G)
, равняется [2 2 3 3 7]
. Последний индексный [8 10 12 2 4 20 18]
вектора используется к ссылке в 7 4 массив, сохраняя порядок, продиктованный MATLAB одна индексация (например, 10-й элемент массива 7 4, массив является элементом в (3,2) положение в массиве).
Обратите внимание на то, что, если M
имеет или один вывод (строка) или один вход (столбец), и
M
имеет измерения массива, то это не допустимо, чтобы объединить одну индексацию в размерностях вывода/входа наряду с индексацией в измерениях массива. Это приведет к неоднозначности в том, как интерпретировать второй индексный вектор в выражении (т.е. “это соответствует ссылке ввода/вывода, или это соответствует первому измерению массива?”).