Тестовое равенство символьных входов
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
Когда ваши входы не являются символическими объектами, MATLAB isequal
вызывается функция. Если один из аргументов символьный, то все другие аргументы преобразуются в символические объекты перед сравнением, и символические isequal
вызывается функция.
isequal(a,b)
проверяет, a
и b
имеют одинаковый размер, и их содержимое синтаксически совпадает с выражением. Чтобы проверить, является ли математическое сравнение a == b
hold для всех значений переменных в a
и b
, использовать isAlways(a == b)
.