isequal

Тестовое равенство символьных входов

Описание

пример

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), потому что double и symbolic являются различными типами данных.

Проверяйте, если 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), потому что double и symbolic являются различными типами данных. Как вернуться 1 (true) в этом случае использовать logical вместо этого.

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

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

Проверяйте, если выражения tan(x) и sin(x)/cos(x) синтаксически одинаковы. isequal функция возвращает 0 (false) так как выражения различаются и isequal не делает математического сравнения между выражениями.

syms x
isequal(tan(x),sin(x)/cos(x))
ans =
  logical
   0

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

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

Чтобы проверить, является ли математическое сравнение tan(x) == sin(x)/cos(x) содержит для всех значений x, использовать isAlways.

isAlways(tan(x) == sin(x)/cos(x))
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

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

свернуть все

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

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

Совет

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

  • isequal(a,b) проверяет, a и b имеют одинаковый размер, и их содержимое синтаксически совпадает с выражением. Чтобы проверить, является ли математическое сравнение a == b hold для всех значений переменных в a и b, использовать isAlways(a == b).

См. также

| | | | | |

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