exponenta event banner

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 массив структур, где каждая структура содержит один набор значений замены. Структура, такая как 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 является скалярным. Размеры массива M, S, 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 для четырех различных (a, bкомбинации (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×1 struct array with fields:
    a
    b

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

M2rand = usubs(M2,samples);

Эта команда возвращает массив экземпляров 1 на 5 M2.

См. также

| |

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