ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

and

シンボリック式の論理積

構文

A & B
and(A,B)

説明

A & B は論理結合を表します。A および B の両方が真の場合にのみ、A & B が真になります。

関数 and(A,B) は、関数 A & B と等価です。

入力引数

A

シンボリックな部分式を含むシンボリック方程式、不等式または論理式。

B

シンボリックな部分式を含むシンボリック方程式、不等式または論理式。

& を使用して、これらのシンボリック不等式を論理式に結合します。

syms x y
xy = x >= 0 & y >= 0;

assume を使用して、変数 x および y に対応する仮定を設定します。

assume(xy)

仮定が設定されていることを確認します。

assumptions
ans =
[ 0 <= x, 0 <= y]
 

& を使用して、2 つのシンボリック不等式を論理式に結合します。

syms x
range = 0 < x & x < 1;

変数 x をこれらの数値で置き換えます。x を 1/2 で置き換えた場合には、両方の不等式が有効になります。x を 10 で置き換えた場合には、両方の不等式が無効になります。subs が、これらの不等式を論理値 1 または 0 に評価しないことに注意してください。

x1 = subs(range, x, 1/2)
x2 = subs(range, x, 10)
x1 =
0 < 1/2 and 1/2 < 1
 
x2 =
0 < 10 and 10 < 1

これらの不等式を論理値 1 または 0 に評価するには、logical または isAlways を使用します。

logical(x1)
isAlways(x2)
ans =
     1

ans =
     0

simplify がこれらの論理式を論理値 1 または 0 に単純化しないことに注意してください。代わりに、"シンボリックな"TRUE または FALSE を返します。

s1 = simplify(x1)
s2 = simplify(x2)
s1 =
TRUE
 
s2 =
FALSE

logical を使用して、シンボリックな TRUE または FALSE を論理値に変換します。

logical(s1)
logical(s2)
ans =
     1

ans =
     0
 

値の範囲を定義するアプローチとして、& の使用を推奨します。ただし、次のように変数の値範囲を定義できます。

syms x
range = 0 < x < 1;

変数 x を数値で置き換える場合は、MATLAB® 倍精度の数値ではなく、シンボリックな数値を使用します。シンボリックな数値を作成するには、sym を使用します。

x1 = subs(range, x, sym(1/2))
x2 = subs(range, x, sym(10))
x1 =
(0 < 1/2) < 1
 
x2 =
(0 < 10) < 1

これらの不等式を論理値 1 または 0 に評価するには、isAlways を使用します。logical はこのような不等式を解くことができません。

isAlways(x1)
isAlways(x2)
ans =
     1

ans =
     0

詳細

すべて展開する

ヒント

  • シンボリックな部分式を含む論理式に対して simplify を呼び出す場合には、シンボリック値 TRUE または FALSE を取得できます。これらの値は、論理値 1 (true) および論理値 0 (false) と同じではありません。シンボリックな TRUE または FALSE を論理値に変換するには、logical を使用します。

参考

| | | | | |

この情報は役に立ちましたか?