Create complex array

collapse all in page

## Syntax

`z = complex(a,b)`

`z = complex(x)`

## Description

example

`z = complex(a,b)`

createsa complex output, `z`

, from two real inputs, suchthat `z = a + bi`

.

The `complex`

function provides a useful substitutefor expressions, such as `a + 1i*b`

or `a+ 1j*b`

, when

`a`

and`b`

arenot`double`

or`single`

`b`

is all zeros

example

`z = complex(x)`

returnsthe complex equivalent of `x`

, such that `isreal(z)`

returnslogical `0`

(`false`

).

If

`x`

is real, then`z`

is`x+ 0i`

.If

`x`

is complex, then`z`

isidentical to`x`

.

## Examples

collapse all

### Complex Scalar from Two Real Scalars

Open Live Script

Use the `complex`

function to create the complex scalar, `3 + 4i`

.

z = complex(3,4)

z = 3.0000 + 4.0000i

### Complex Vector from Two Real Vectors

Open Live Script

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

### Complex Scalar from One Real Scalar

Open Live Script

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

`a`

— Real component

scalar | vector | matrix | multidimensional array

Real component, specified as a scalar, vector, matrix, or multidimensionalarray.

The size of `a`

must match the size of `b`

,unless one is a scalar. If either `a`

or `b`

isa scalar, MATLAB^{®} expands the scalar to match the size of theother 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`

`b`

— Imaginary component

scalar | vector | matrix | multidimensional array

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`

isa scalar, MATLAB expands the scalar to match the size of theother 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`

`x`

— Input array

scalar | vector | matrix | multidimensional array

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

**Data Types: **`single`

| `double`

| `int8`

| `int16`

| `int32`

| `int64`

| `uint8`

| `uint16`

| `uint32`

| `uint64`

| `logical`

**Complex Number Support: **Yes

## Output Arguments

collapse all

`z`

— Complex array

scalar | vector | matrix | multidimensional array

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

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`

iscomplex and the value of all its imaginary components is`0`

.In contrast, the addition`a + 0i`

returns a strictlyreal result.

## Extended Capabilities

### Tall Arrays

Calculate with arrays that have more rows than fit in memory.

This function fully supports tall arrays. Formore information, see Tall Arrays.

### 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™.

### Thread-Based Environment

Run code in the background using MATLAB® `backgroundPool`

or accelerate code with Parallel Computing Toolbox™ `ThreadPool`

.

This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.

### GPU Arrays

Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.

This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

### Distributed Arrays

Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.

This function fully supports distributed arrays. For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).

## Version History

**Introduced before R2006a**

## See Also

abs | angle | conj | i | imag | isreal | j | real

### Topics

- Create Complex Numbers

## MATLAB Command

You clicked a link that corresponds to this MATLAB command:

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

### Americas

- América Latina (Español)
- Canada (English)
- United States (English)

### Europe

- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)

- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français

- United Kingdom (English)

Contact your local office