Matlab-logical-operators

提供:Dev Guides
移動先:案内検索

MATLAB-論理演算

MATLABは、論理演算子と関数の2種類を提供しています-

  • 要素単位-これらの演算子は、論理配列の対応する要素を操作します。 *短絡-これらの演算子はスカラーの論理式で動作します。

要素単位の論理演算子は、論理配列の要素ごとに動作します。 記号&、|、および〜は、論理配列演算子AND、OR、およびNOTです。

短絡論理演算子は、論理演算の短絡を可能にします。 記号&&および||論理短絡演算子ANDおよびORです。

スクリプトファイルを作成し、次のコードを入力します-

a = 5;
b = 20;
   if ( a && b )
      disp('Line 1 - Condition is true');
   end
   if ( a || b )
      disp('Line 2 - Condition is true');
   end

   % lets change the value of  a and b
   a = 0;
   b = 10;

   if ( a && b )
      disp('Line 3 - Condition is true');
   else
      disp('Line 3 - Condition is not true');
   end

   if (~(a && b))

      disp('Line 4 - Condition is true');
   end

ファイルを実行すると、次の結果が生成されます-

Line 1 - Condition is true
Line 2 - Condition is true
Line 3 - Condition is not true
Line 4 - Condition is true

論理演算の機能

上記の論理演算子とは別に、MATLABは同じ目的で使用される以下のコマンドまたは関数を提供します-

Sr.No. Function & Description
1
  • and(A, B)*

配列またはスカラー入力の論理ANDを検索します。すべての入力配列A、Bなどの論理ANDを実行します。 そして、論理1(true)または論理0(false)に設定された要素を含む配列を返します。 すべての入力配列に同じ配列位置にゼロ以外の要素が含まれている場合、出力配列の要素は1に設定されます。 それ以外の場合、その要素は0に設定されます。

2

not(A)

配列またはスカラー入力の論理否定を見つけます。入力配列Aの論理NOTを実行し、論理1(true)または論理0(false)に設定された要素を含む配列を返します。 入力配列の同じ配列位置にゼロ値要素が含まれている場合、出力配列の要素は1に設定されます。 それ以外の場合、その要素は0に設定されます。

3

or(A, B)

配列またはスカラー入力の論理ORを見つけます。すべての入力配列A、Bなどの論理ORを実行します。 そして、論理1(true)または論理0(false)に設定された要素を含む配列を返します。 入力配列に同じ配列位置にゼロ以外の要素が含まれている場合、出力配列の要素は1に設定されます。 それ以外の場合、その要素は0に設定されます。

4

xor(A, B)

論理排他的OR。配列AおよびBの対応する要素に対して排他的OR演算を実行します。 結果の要素C(i、j、…​)は、A(i、j、…​)またはB(i、j、…​)の両方ではなく両方がゼロでない場合、論理的に真(1)です。

5

all(A)

配列Aのすべての配列要素が非ゼロまたは真かどうかを判別します。

  • Aがベクトルの場合、すべての要素がゼロ以外の場合、all(A)は論理値1(true)を返し、1つ以上の要素がゼロの場合、論理値0(false)を返します。
  • Aが空でない行列の場合、all(A)はAの列をベクトルとして扱い、論理1と0の行ベクトルを返します。
  • Aが空の0行0列の行列の場合、all(A)は論理値1(true)を返します。 *Aが多次元配列の場合、all(A)は最初の1でない次元に沿って機能し、論理値の配列を返します。 この次元のサイズは1に減少しますが、他のすべての次元のサイズは同じままです。
6
  • all(A, dim)*

スカラー_dim_で指定されたAの次元に沿ってテストします。

7

any(A)

配列要素がゼロでないかどうかを判断します。配列のさまざまな次元に沿った要素のいずれかがゼロ以外の数値であるか、論理1(true)であるかをテストします。 any関数は、NaN(Not a Number)のエントリを無視します。

  • Aがベクトルの場合、Aの要素のいずれかがゼロ以外の数値または論理1(true)の場合、any(A)は論理1(true)を返し、すべての要素がゼロの場合、論理0(false)を返します。
  • Aが空でない行列の場合、any(A)はAの列をベクトルとして扱い、論理1と0の行ベクトルを返します。
  • Aが空の0行0列の行列の場合、any(A)は論理値0(false)を返します。 *Aが多次元配列の場合、any(A)は最初の1でない次元に沿って動作し、論理値の配列を返します。 この次元のサイズは1に減少しますが、他のすべての次元のサイズは同じままです。
8
  • any(A,dim)*

スカラー_dim_で指定されたAの次元に沿ってテストします。

9

false

論理値0(偽)

10

false(n)

論理ゼロのn行n列の行列です

11

false(m, n)

は、論理ゼロのm行n列の行列です。

12

false(m, n, p, …​)

は、m x n x p …​ 論理ゼロの配列。

13

false(size(A))

配列Aと同じサイズの論理ゼロの配列です。

14

false(…​,'like',p)

は、論理配列pと同じデータ型とスパース性の論理ゼロの配列です。

15

ind = find(X)

非ゼロ要素のインデックスと値を見つけます。配列Xのすべての非ゼロ要素を見つけ、それらの要素の線形インデックスをベクトルで返します。 Xが行ベクトルの場合、返されるベクトルは行ベクトルです。それ以外の場合、列ベクトルを返します。 Xに非ゼロ要素が含まれていないか、空の配列である場合、空の配列が返されます。

16

ind = find(X, k)

  • ind = find(X、k、 'first') *

Xの非ゼロエントリに対応する最大で最初のk個のインデックスを返します。 kは正の整数でなければなりませんが、任意の数値データ型にすることができます。

17
  • ind = find(X, k, 'last')*

Xの非ゼロエントリに対応する最大で最後のk個のインデックスを返します。

18

[row,col] = find(X, …​)

行列Xの非ゼロエントリの行と列のインデックスを返します。 この構文は、スパース行列を扱うときに特に役立ちます。 XがN> 2のN次元配列の場合、colには列の線形インデックスが含まれます。

19

[row,col,v] = find(X, …​)

Xの非ゼロエントリの列または行ベクトルv、および行と列のインデックスを返します。 Xが論理式の場合、vは論理配列です。 出力vには、式Xを評価することによって取得された論理配列の非ゼロ要素が含まれます。

20

islogical(A)

入力が論理配列かどうかを判別します。 Aが論理配列の場合はtrueを返し、そうでない場合はfalseを返します。 また、Aが論理クラスから派生したクラスのインスタンスである場合もtrueを返します。

21

logical(A)

数値を論理値に変換します。論理インデックス付けまたは論理テストに使用できる配列を返します。

22

true

論理1(true)

23

true(n)

論理値1のn行n列の行列です。

24

true(m, n)

論理的なもののm行n列の行列です。

25

true(m, n, p, …​)

は、m x n x p …​ 論理的なものの配列。

26

true(size(A))

は、配列Aと同じサイズの論理配列です。

27

true(…​,'like', p)

は、論理配列pと同じデータ型とスパース性の論理配列です。