Main Content

complex

Create complex array

Description

z = complex(a,b) creates a complex output, z, from two real inputs, such that z = a + bi.

The complex function provides a useful substitute for expressions, such as a + 1i*b or a + 1j*b, when

  • a and b are not double or single

  • b is all zeros

example

z = complex(x) returns the complex equivalent of x, such that isreal(z) returns logical 0 (false).

  • If x is real, then z is x + 0i.

  • If x is complex, then z is identical to x.

example

Examples

collapse all

Use the complex function to create the complex scalar, 3 + 4i.

z = complex(3,4)
z = 
3.0000 + 4.0000i

Create a complex uint8 vector from two real uint8 vectors. The size of z, 4-by-1, is the same as the size of the input arguments.

a = uint8([1;2;3;4]);
b = uint8([2;2;7;7]);

z = complex(a,b)
z = 4x1 uint8 column vector

   1 +   2i
   2 +   2i
   3 +   7i
   4 +   7i

Create a complex scalar with zero imaginary part.

z = complex(12)
z = 
12.0000 + 0.0000i

Verify that z is complex.

isreal(z)
ans = logical
   0

Input Arguments

collapse all

Real component, specified as a scalar, vector, matrix, or multidimensional array.

The size of a must match the size of b, unless one is a scalar. If either a or b is a scalar, MATLAB® expands the scalar to match the size of the other input.

a and b can have different data types. However, if either a or b is an integer data type, then the other input must have the same integer type or be a full (not sparse) scalar double.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Imaginary component, specified as a scalar, vector, matrix, or multidimensional array.

The size of b must match the size of a, unless one is a scalar. If either a or b is a scalar, MATLAB expands the scalar to match the size of the other input.

a and b can have different data types. However, if either a or b is an integer data type, then the other input must have the same integer type or be a full (not sparse) scalar double.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

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

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Complex Number Support: Yes

Output Arguments

collapse all

Complex array, returned as a scalar, vector, matrix, or multidimensional array.

The size of z is the same as the input arguments.

The following describes the data type of z when a and b have different data types.

  • If either a or b is single, then z is single.

  • If either a or b is logical, then z is the data type of the nonlogical input.

  • If either a or b is an integer data type, then z is the same integer data type.

Additionally, z is only sparse when both input arguments a and b are sparse.

Tips

  • If b contains only zeros, then z is complex and the value of all its imaginary components is 0. In contrast, the addition a + 0i returns a strictly real result.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

HDL Code Generation
Generate VHDL, Verilog and SystemVerilog code for FPGA and ASIC designs using HDL Coder™.

Version History

Introduced before R2006a

See Also

| | | | | | |

Go to top of page