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

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

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

isreal

入力が実数配列かどうかをチェック

構文

TF = isreal(A)

説明

TF = isreal(A) は、A に虚数部がない場合は論理値 1 (true) を返し、これは論理値 0 (false) を返します。A に、保存されている虚数部の値 0 がある場合は、isreal(A) は論理値 0 (false) を返します。

    メモ:   logical および char オブジェクト クラスの場合、関数 isreal は常に true を返します。数値データ型の場合、A に虚数部がなければ、関数 isrealtrue を返し、A に虚数部があれば関数 isrealfalse を返します。cellstructfunction_handleobject データ型の場合は、関数 isreal は常に論理値 false を返します。

~isreal(x) は、配列の少なくとも 1 つの要素が虚数部である場合は true を返します。虚数部の値が 0 でも構いません。

例 1

計算結果がゼロ値の虚数部の場合、関数 isrealtrue を返します。

x=3+4i;
y=5-4i;
isreal(x+y)
ans =

     1

例 2

次の例では、関数 isreal を使用して、配列に虚数が含まれているかどうか検出します。以下を考えます。

x = magic(3);
y = complex(x);

isreal(x)true を返します。これは、x の要素に虚数部が存在しないためです。

isreal(x)
ans =

     1

isreal(y)false を返します。これは、虚数部の値が 0 である場合も含め、x のすべての要素に虚数部が含まれるためです。

isreal(y)
ans =

     0

次の式は、厳密な意味で実数配列を調べます。すなわち、0 値を虚数部としてもつ要素は、実数として取り扱われます。

~any(imag(y(:)))
ans =

     1

例 3

以下のセル配列の場合、

C{1} = pi;                 % double
C{2} = 'John Doe';         % char array
C{3} = 2 + 4i;             % complex double
C{4} = ispc;               % logical
C{5} = magic(3);           % double array
C{6} = complex(5,0)        % complex double
C = 

    [3.1416]    'John Doe'    [2.0000 + 4.0000i]    [1]    [3x3 double]    [5.0000 + 0.0000i]

isreal は、C{1,3}C{1,6} 以外は、実数配列であることを示しています。

for k = 1:6
x(k) = isreal(C{k});
end

x
x =

     1     1     0     1     1     0

詳細

すべて展開する

ヒント

A が実数の場合、complex(A) は、虚数部が 0 の複素数を返し、isreal(complex(A))false を返します。これに対して、加算 A + 0i は実数値 A を返し、isreal(A + 0i)true を返します。

B が実数で A = complex(B) の場合、A は複数素数行列なので、isreal(A)false を返し、A(m:n) は実数行列を返し、isreal(A(m:n))true を返します。

MATLAB® ソフトウェア は複素数をサポートしているので、関数によっては、実数に制限されているように見える計算過程で多くの虚数部を導入する場合があります。そのため、関数 isreal は慎重に使用してください。

参考

| | | | | | |

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