Main Content

isequal

シンボリック入力が等しいかどうかの判定

説明

tf = isequal(A,B) は、AB が同じサイズであり、その内容が等価である場合に、logical 1 (true) を返します。それ以外の場合、isequal は logical 0 (false) を返します。isequalNaN (Not a Number) 値が互いに等しいものと見なしません。isequal は、シンボリック データ構造体の内容およびオブジェクトのプロパティを再帰的に比較します。すべての内容が対応する位置で等しい場合、isequal は logical 1 (true) を返します。

tf = isequal(A1,A2,...,An) は、すべての入力 A1,A2,...,An が等しい場合に logical 1 (true) を返します。

すべて折りたたむ

isequal を使用して数値入力またはシンボリック入力の等価性をテストします。数値入力とシンボリック入力を比較する場合、doublesym は異なるデータ型であるため、isequal0 (false) を返します。

25 が等価であるかテストします。double どうしを比較しているため、MATLAB® 関数isequalが呼び出されます。isequal は予想どおり 0 (false) を返します。

tf = isequal(2,5)
tf = logical
   0

方程式 cos(x) == -1 の解が pi であるかテストします。関数 isequal1 (true) を返します。これは、解が pi と等価であることを意味します。

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

pi の double 表現とシンボリック表現を比較します。doublesym は異なるデータ型であるため、isequal0 (false) を返します。この場合に 1 (true) が返されるようにするには、代わりにlogicalを使用します。

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

usingLogical = logical(pi == sym(pi))
usingLogical = logical
   1

コーディングの観点から見て式 tan(x)sin(x)/cos(x) が等しいかどうかをテストします。式が異なるため、関数 isequal0 (false) を返します。isequal は式を数学的に比較しません。

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

tan(x)sin(x)cos(x) で書き換えます。rewritetan(x)sin(x)/cos(x) に正しく書き換えるかどうかをテストします。関数 isequal1 (true) を返します。

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

x のすべての値について数学的な比較 tan(x) == sin(x)/cos(x) が成り立つかどうかをチェックするには、isAlways を使用します。

tf = isAlways(tan(x) == sin(x)/cos(x))
tf = logical
   1

solve によって求められた二次方程式の解が予想した解と等しいかどうかをテストします。関数 isequal1 (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)];
tf = isequal(Sol,testSol)
tf = logical
   1

ヒルベルト行列は、逆行列を正確に計算することが難しい特別な行列です。逆行列が正確に計算されている場合、逆行列と元のヒルベルト行列を乗算すると単位行列が返されます。

次の条件を使用して、hilb(20) の逆行列が正しく計算されているかどうかをテストします。isequal1 (true) を返します。これは、逆行列と元のヒルベルト行列の積が単位行列と等しいことを意味します。

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

NaN (Not a Number) を含む 3 つのベクトルを比較します。isequalNaN 値を等価として扱わないため、isequal は logical 0 (false) を返します。

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

入力引数

すべて折りたたむ

比較される入力。数値、ベクトル、行列、または配列として指定するか、シンボリック数、シンボリック スカラー変数、シンボリック行列変数、シンボリック配列、シンボリック関数、シンボリック行列関数、またはシンボリック式として指定します。

比較される一連の入力。数値、ベクトル、行列、または配列として指定するか、シンボリック数、シンボリック スカラー変数、シンボリック行列変数、シンボリック配列、シンボリック関数、シンボリック行列関数、またはシンボリック式として指定します。

ヒント

  • isequal(A,B) は、AB のサイズが同じであり、コーディングの観点から見てそれらの内容が等しいかどうかをチェックします。AB の変数のすべての値について、条件 A == B が常に数学的に真となるかどうかをチェックするには、isAlways(A == B) を使用します。

  • 入力引数のいずれかがシンボリック型で、他の入力がそれと同じ値をもつ MATLAB® の数値型である場合、入力のデータ型が異なるため、isequal は logical 0 (false) を返します。たとえば、tf = isequal(1,sym(1))0 (false) を返します。

バージョン履歴

R2006a より前に導入

すべて展開する