usubs

Замените данными значениями неопределенные элементы неопределенных объектов

Синтаксис

B = usubs(M,ElementName1,value1,ElementName2,value2,...)
B = usubs(M,S)
B = usubs(M,...,'-once')
B = usubs(M,...,'-batch')

Описание

Используйте usubs заменять определенным значением неопределенный элемент неопределенного объекта модели. Значение может самостоятельно быть сомнительным. Это должно быть правильным размером, но в противном случае может быть любого класса и может быть массивом. Следовательно, результат может иметь любой класс. Этим способом неопределенные элементы действуют как символьные заполнители, для который определенные значения (который может также содержать других заполнителей также), может быть подставлен.

B = usubs(M,ElementName1,value1,ElementName2,value2,...) устанавливает элементы в M, идентифицированный ElementName1, ElementName2, и т.д., к значениям в value1, value2, и т.д. соответственно.

Можно также использовать векторы символов 'NominalValue' или 'Random' как любой value аргумент. Если вы делаете так, номинальная стоимость или случайный экземпляр неопределенного элемента используются. Можно частично задать эти векторы символов, вместо того, чтобы ввести полное выражение. Например, можно использовать 'Nom' или 'Rand'.

B = usubs(M,S) инстанцирует неопределенных элементов M к значениям, заданным в структуре S. Имена полей S имена неопределенных элементов, чтобы заменить. Значения являются соответствующими заменяющими значениями. Чтобы обеспечить несколько заменяющих значений, сделайте S массив структур, где каждый struct содержит один набор заменяющих значений. Структура, такая как S обычно прибывает из аналитических команд робастности, таких как robstab, usample, или wcgain.

B = usubs(M,...,'-once') выполняет векторизованную замену в неопределенном массиве моделей M. Каждый неопределенный элемент заменяется одним значением, но это значение может измениться через массив моделей. Задавать различные значения замены для каждой модели в массиве MИспользование:

  • Массив ячеек для каждого valueN это вызывает неопределенный элемент ElementNameN в M(:,:,k) быть замененным valueN(k). Например, если M массив 2х3, затем 2 3 массив ячеек value1 замены ElementName1 из модели M(:,:,k) с соответствующим value1(k).

  • Массив структур S это задает один набор значений замены S(k) для каждой модели M(:,:,k).

Форматы числового массива также приняты для value1,value2,.... Например, value1 может быть массив 2х3 моделей LTI, числовой массив размера [size(name1) 2 3], или 2 3 матрица, когда неопределенный элемент name1 со скалярным знаком. Размеры массивов MS, value1,value2,... должен согласиться по неодноэлементным измерениям. Скалярное расширение происходит по одноэлементным измерениям.

Векторизованная замена ('-once') значение по умолчанию для массивов моделей, когда никакой метод замены не задан.

B = usubs(M,...,'-batch') выполняет пакетную замену в неопределенном массиве моделей M. Каждый неопределенный элемент заменяется массивом значений, и те же значения используются во всех моделях в M. В пакетной замене, B массив моделей размера [size(M) VS], где VS размер массива значений замены.

Примеры

свернуть все

Оцените неопределенную матрицу в нескольких различных значениях неопределенных параметров матрицы.

Создайте неопределенную матрицу двумя неопределенными параметрами.

a = ureal('a',5);
b = ureal('b',-3);
M = [a b];

Оцените матрицу в четырех различных комбинациях значений для неопределенных параметров a и b.

B = usubs(M,'a',[1;2;3;4],'b',[10;11;12;13]);

Эта команда оценивает M для отличающихся четырех (aB) комбинации (1,10), (2,11), и так далее. Поэтому B 1 2 4 массивами числовых значений, содержащих четыре оцененных значения M.

Оцените неопределенную матрицу по сетке 3 на 4 значений неопределенных параметров матрицы.

Создайте неопределенную матрицу 2 на 2 двумя неопределенными параметрами.

a = ureal('a',5);
b = ureal('b',-3);
M = [a b;0 a*b];

Создайте массивы значений для неопределенных параметров.

aval = [1;2;3;4];
bval = [10;20;30];
[as,bs] = ndgrid(aval,bval);

Эта команда создает два 4 3 сетки значений.

Оцените M по сеткам параметра A и B.

B = usubs(M,'a',as,'b',bs);

Эта команда оценивает M для каждых четырех различных комбинаций значений (A(k),B(k))B 2 2 4 3 массивами числовых значений, которые являются 4 3 массив значений M, т.е. M оцененный по сеткам параметра.

Оцените массив неопределенных моделей, заменив массивом значений для неопределенного параметра.

Создайте 1 2 неопределенную матрицу двумя неопределенными параметрами.

a = ureal('a',5);
b = ureal('b',-3);
M = [a b];

Замените a каждым из значений 1, 2, 3, и 4.

Ma = usubs(M,'a',[1;2;3;4]);

Эта команда возвращается 4 1 массив 1 2 неопределенных матриц, которые содержат один неопределенный параметр b.

Для каждой модели в массиве Ma, оцените b в 10, 20, и 30.

B = usubs(Ma,'b',[10;20;30],'-batch');

'-batch' флаг вызывает usubs оценивать каждую модель в массиве во всех трех значениях b. Таким образом B 4 3 массив M значения.

'-batch' синтаксис здесь дает к тому же результату как подход сетки параметра, используемый в предыдущем примере:

aval = [1;2;3;4];
bval = [10;20;30];
[as,bs] = ndgrid(aval,bval);
B = usubs(M,'a',as,'b',bs);

Оцените массив неопределенных моделей, заменив различным значением неопределенный параметр в каждой записи в массиве.

Создайте 1 2 неопределенную матрицу двумя неопределенными параметрами.

a = ureal('a',5);
b = ureal('b',-3);
M = [a b];

Замените a каждым из значений 1, 2, 3, и 4.

Ma = usubs(M,'a',[1;2;3;4]);

Эта команда возвращается 4 1 массив 1 2 неопределенных матриц, которые содержат один неопределенный параметр b.

Для каждой модели в массиве Ma, оцените b. Используйте b = 10 для первой записи в массиве, b = 20 для второй записи, и так далее.

B = usubs(Ma,'b',{10;20;30;40},'-once');

'-once' флаг вызывает usubs оценивать первую модель в массиве с помощью первого заданного значения в b, вторая модель для второго заданного значения, и т.д.

Замените неопределенные параметры в неопределенные модели значениями, заданными в форме массива структур, как возвращено usample.

Это полезно, например, когда у вас есть несколько неопределенных моделей, которые используют тот же набор параметров, и вы хотите оценить все модели в тех же значениях параметров.

Создайте две неопределенных матрицы, которые имеют те же неопределенные параметры, a и b.

a = ureal('a',5);
b = ureal('b',-3);
M1 = [a b];
M2 = [a b;0 a*b];

Сгенерируйте некоторые случайные выборки M1.

[M1rand,samples] = usample(M1,5);

M1rand массив пяти значений M1, оцененный в случайным образом сгенерированных значениях a и b. Они a и b значения возвращены в массиве структур samples.

Исследуйте массив структур samples.

samples
samples=5×2 struct
    a
    b

Имена полей samples соответствуйте неопределенным параметрам M1. Значения являются значениями параметров, используемыми, чтобы сгенерировать M1rand. Поскольку M2 имеет те же параметры, можно использовать эту структуру, чтобы оценить M2 в том же множестве значений.

M2rand = usubs(M2,samples);

Эта команда возвращает массив 1 на 5 инстанцирований M2.

Смотрите также

| |

Представлено до R2006a