Accelerating the pace of engineering and science

isreal

Determine if array is real

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