exponenta event banner

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

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

Похожие темы