Programming and Data Types    

論理演算子

この節では、MATLABの論理演算子について述べます。

MATLABは、つぎの論理演算子を用意しています。

演算子
詳細
&
AND
|
OR
~
NOT

各論理演算子を使って、論理表現の結果を決める規則の設定集合を表します。

論理演算子と配列

MATLAB の論理演算子は、同じ大きさの配列の対応する要素を比較します。ベクトルや長方形配列に対して、2つのオペランドは、一方がスカラでない限り、同じ大きさでなければなりません。一つのオペランドがスカラで、他のオペランドがスカラでない場合、MATLAB はスカラでないオペランドのすべての要素に対して、スカラと比較します。設定した関係が真の位置に1、偽の位置に0を出力します。

論理関数

論理演算子に加え、MATLABはいくつかの論理関数を提供します。

関数
詳細
例題
xor 関数xorは、対象となるオペランドとの排他的ORを行ないます。排他的OR表現は、一つのオペランドがTRUEならば TRUEで、他の場合は、FALSEです。数値の場合、関数は一つのオペランドがゼロでなく、他のオペランドがゼロならば1を出力します。
    a = 1;
    b = 1;
    xor(a,b)
    
    ans =
        0
    
all あるベクトルのすべての要素がであるか、またはすべてがゼロでない場合、関数allは1を出力します。all関数は、行列に関しては列方向に機能します
    A = [0 1 2;3 5 0]
    
    A = 
         0    1    2
         3    5    0
    
    all(A)
    
    ans =
         0    1    0
    
any 引数の任意の要素が、真、または、ゼロでない場合、関数anyは1を出力し、他の場合は0を出力します。allと同じように、any関数は、行列に関しては列方向に機能します。
    v = [5 0 8];
    any(v)
    
    ans =
         1
    

.

いくつかの他の MATLAB 関数も、論理演算を行います。たとえば、関数isnanは、NaNs に対して1を、関数isinfは、Infs に対して1を出力します。論理関数の一覧は、ops デレクトリを参照してください。

関数findを使った論理表現とサブスクリプト機能

関数findは、与えられた論理条件を満足する配列要素のインデックスを決定します。これは、行列をマスクしたり、行列にインデックスを作成するのに有効です。最も一般的な型では、findはインデックスを表す単一の行ベクトルを返します。このベクトルは、任意のサイズ、または、型の配列の中のインデックスに対応しています。たとえば、

配列の場合と同様に、長方形行列に対して、条件を満たす行と列両方向のインデックスを得るのにfindを使います。より詳細な情報については、ヘルプ機能を使ってください。


  比較演算子 演算子の優先順位