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

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

Похожие темы