isequal

Протестируйте равенство символьных входных параметров

Синтаксис

isequal(a,b)
isequal(a1,a2,...,aN)

Описание

пример

isequal(a,b) возвращает логический 1 (true), если A и B одного размера, и их содержимое имеет равную ценность. В противном случае isequal возвращает логический 0 (false). isequal не считает NaN (не номер) значениями равный. isequal рекурсивно сравнивает содержимое символьных структур данных и свойства объектов. Если все содержимое в соответствующих местоположениях равно, isequal возвращает логический 1 (true).

пример

isequal(a1,a2,...,aN) возвращает логический 1 (true), если все входные параметры a1,a2,...,aN равны.

Примеры

Протестируйте числа на равенство

Протестируйте числовые или символьные входные параметры на равенство с помощью isequal. Если вы сравниваете числовые входные параметры с символьными входными параметрами, isequal возвращает 0 (false), потому что двойной и символьный отличные типы данных.

Протестируйте, если 2 и 5 равны. Поскольку вы выдерживаете сравнение, удваивается, функция MATLAB® isequal вызвана. isequal возвращает 0 (false) как ожидалось.

isequal(2,5)
ans =
  logical
   0

Протестируйте, если решением уравнения cos(x) == -1 является pi. Функция isequal возвращает 1 (true), означающий, что решение равно pi.

syms x
sol = solve(cos(x) == -1, x);
isequal(sol,sym(pi))
ans =
  logical
   1

Сравните двойные и символьные представления 1. isequal возвращает 0 (false), потому что двойной и символьный отличные типы данных. Чтобы возвратить 1 (true) в этом случае, используйте logical вместо этого.

usingIsEqual = isequal(pi,sym(pi))
usingLogical = logical(pi == sym(pi))
usingIsEqual =
  logical
   0
usingLogical =
  logical
   1

Протестируйте символьные выражения на равенство

Протестируйте, если rewrite правильно переписывает tan(x) как sin(x)/cos(x). Функция isequal возвращает 1 (true), означающий, что переписанный результат равняется проверяемому выражению.

syms x
f = rewrite(tan(x),'sincos');
testf = sin(x)/cos(x);
isequal(f,testf)
ans =
  logical
   1

Протестируйте символьные векторы и матрицы для равенства

Тестовые векторы и матрицы для равенства с помощью isequal.

Протестируйте, если решения квадратного уравнения, найденного solve, равны ожидаемым решениям. функция isequal возвращает 1 (true), означающий, что входные параметры равны.

syms a b c x
eqn = a*x^2 + b*x + c;
Sol = solve(eqn, x);
testSol = [-(b+(b^2-4*a*c)^(1/2))/(2*a); -(b-(b^2-4*a*c)^(1/2))/(2*a)];
isequal(Sol,testSol)
ans =
  logical
   1

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

Используйте это условие символически протестировать, если инверсия hilb(20) правильно вычисляется. isequal возвращает 1 (true), означающий, что продукт инверсии и исходной Гильбертовой матрицы равен единичной матрице.

H = sym(hilb(20));
prod = H*inv(H);
eye20 = sym(eye(20));
isequal(prod,eye20)
ans =
  logical
   1

Сравните входные параметры, содержащие NaN

Сравните три вектора, содержащие NaN (не номер). isequal возвращает логический 0 (false), потому что isequal не обрабатывает значения NaN как равные друг другу.

syms x
A1 = [x NaN NaN];
A2 = [x NaN NaN];
A3 = [x NaN NaN];
isequal(A1, A2, A3)
ans =
  logical
   0

Входные параметры

свернуть все

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

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

Советы

  • Когда ваши входные параметры не являются символьными объектами, функция isequal MATLAB вызвана. Если один из аргументов является символьным, то все другие аргументы преобразованы в символьные объекты перед сравнением, и символьная функция isequal вызвана.

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

| | | | | |

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