exponenta event banner

evalRequirement

Класс: sdo.requirements.RelationConstraint
Пакет: sdo.requirements

Оценка соответствия требованиям реляционных ограничений

Синтаксис

evaluation = evalRequirement(requirement,variableData1,variableData2)

Описание

evaluation = evalRequirement(requirement,variableData1,variableData2) оценивает, основаны ли тестовые данные на двух переменных, variableData1 и variableData2, удовлетворяют реляционному ограничению, указанному в requirement объект.

Входные аргументы

развернуть все

Требование реляционного ограничения, указанное как sdo.requirements.RelationalConstraint объект. В объекте задается связь, необходимая между элементами двух переменных.

Переменные данные из двух переменных, которые должны быть оценены, указанные как вещественные числовые векторы или массивы. Тестовые данные двух переменных должны иметь одинаковый размер.

Выходные аргументы

развернуть все

Оценка требования реляционного ограничения, возвращаемого в виде вектора или массива того же размера, что и размеры тестовых данных variableData1. Обратите внимание, что размер variableData1 и variableData2 то же самое.

Каждый элемент в evaluation указывает на наличие соответствующих элементов в variableData1 и variableData2 удовлетворить это требование. Значение, возвращаемое для каждого элемента evaluation зависит от отношения, указанного в объекте требования:

requirement.Typeevaluation Значение при выполнении требованияevaluation Значение при нарушении требования
'>' или '<'Отрицательное число с величиной |v1-v2|, абсолютное значение разности между элементами v1 и v2 из variableData1 и variableData2. Положительное число с величиной |v1-v2|, или 0 если элементы равны.
'>=' или '<='Отрицательное число с величиной |v1-v2|, или 0 если элементы равны.Положительное число с величиной |v1-v2|.
'=='0Ненулевое число, которое является разницей между двумя элементами, v1-v2.
'~='01

Примеры

развернуть все

Создайте объект требования и укажите, что элементы первой переменной должны быть больше элементов второй переменной.

Requirement = sdo.requirements.RelationalConstraint('Type','>');

Укажите тестовые данные для двух переменных. Тестовые данные для обеих переменных должны иметь одинаковый размер.

varData1 = [20 -3 7];
varData2 = [20 -1 6];

Оцените, удовлетворяют ли тестовые данные требованиям.

Evaluation = evalRequirement(Requirement,varData1,varData2)
Evaluation = 1×3

    0.0000    2.0000   -1.0000

Evaluation всегда имеет тот же размер, что и тестовые данные. Если тип связи указан как «>», если требование удовлетворено ,evalRequirement возвращает отрицательное число с величиной, равной абсолютному значению разности между двумя элементами. Если требование нарушено, Evaluation - положительное число с величиной, равной абсолютному значению разности между двумя элементами, или 0 если элементы равны.

Первые элементы двух переменных равны, поэтому требование нарушается и Evaluation(1) является 0, разница между элементами.

Вторые элементы, -3 и -1, нарушают требование, приводя к положительному Evaluation(2) со значением = abs (-3- (-1)) = 2.

Третьи элементы, 7 и 6, удовлетворяют требованию, в результате чего получается отрицательное Evaluation(3) со значением = -abs (7-6) = -1.

Создайте объект требования и укажите, что элементы двух переменных должны быть равны друг другу.

Requirement = sdo.requirements.RelationalConstraint('Type','==');

Укажите тестовые данные для двух переменных.

varData1 = [20 15];
varData2 = [20 55];

Оцените, соответствуют ли тестовые данные требованиям.

Evaluation = evalRequirement(Requirement,varData1,varData2)
Evaluation = 1×2

     0   -40

Evaluation имеет тот же размер, что и тестовые данные. Если тип отношения указан как «= =», если требование удовлетворено,evalRequirement прибыль 0, разница между элементами. Если требование нарушено, Evaluation - ненулевое число, равное разнице между двумя элементами.

Первые элементы двух переменных равны, поэтому требование удовлетворяется и Evaluation(1) является 0.

Вторые элементы, 15 и 55, нарушают требование, что приводит к ненулевому Evaluation(2).

Представлен в R2016b