Проверка равенства символьных входных данных
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
Проверка выражений 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 используется для всех значений переменных в a и b, использовать isAlways(a == b).