Управление массивами для неопределенных объектов

Все неопределенные системные классы (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 имеет измерения массива, затем это не допустимо, чтобы объединить одну индексацию в размерностях выхода/входа наряду с индексацией в измерениях массива. Это приведет к неоднозначности в том, как интерпретировать второй вектор индекса в выражении (т.е. “это соответствует ссылке ввода/вывода, или это соответствует первому измерению массива?”).

Похожие темы