isreal

Determine if array is real

Syntax

Description

example

tf = isreal(A) returns logical 1 (true) if A does not have an imaginary part. Otherwise, it returns logical 0 (false).

If A has a stored imaginary part with value 0, then isreal(A) returns logical 0 (false).

Examples

expand all

Determine If Matrix Contains All Real Values

Define a 3-by-4 matrix, A.

A = [7 3+4i 2 5i;...
     2i 1+3i 12 345;...
     52 108 78 3];

Determine if the array is real.

tf = isreal(A)
tf =

     0

Since A contains complex elements, isreal returns false.

Define Complex Number with Zero-Valued Imaginary Part

Use the complex function to create a scalar, A, with zero-valued imaginary part.

A = complex(12)
A =

  12.0000 + 0.0000i

Determine if A is real.

tf = isreal(A)
tf =

     0

A is not real because it has an imaginary part, even though the value of the imaginary part is 0.

Determine if A contains any elements with zero-valued imaginary part.

~any(imag(A))
ans =

     1

A contains elements with zero-valued imaginary part.

Computation Resulting in Zero-Valued Imaginary Part

Define two complex scalars, x and y.

x=3+4i;
y=5-4i;

Determine if the addition of two complex scalars, x and y, is real.

A = x+y
A =

     8

MATLAB® drops the zero imaginary part.

isreal(A)
ans =

     1

A is real since it does not have an imaginary part.

Find Real Elements in Cell Array

Create a cell array.

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

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

C is a 1-by-6 cell array.

Loop over the elements of a cell array to distinguish between real and complex elements.

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

x
x =

     1
     1
     0
     1
     1
     0

All but C{3,1} and C{6,1} are real arrays.

Input Arguments

expand all

A — Input arrayscalar | vector | matrix | multidimensional array

Input array, specified as a scalar, vector, matrix, or multidimensional array.

  • For numeric data types, if A does not have an imaginary part, isreal returns true; if A does have an imaginary part isreal returns false.

  • For logical and char data types, isreal always returns true.

  • For table, cell, struct, function_handle, and object data types, isreal always returns false.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | struct | table | cell | function_handle
Complex Number Support: Yes

More About

expand all

Tips

  • isreal(complex(A)) always returns false, even when the imaginary part is all zeros.

  • ~isreal(x) detects arrays that have an imaginary part, even if it is all zeros.

Was this topic helpful?