# complex

Create complex array

## Description

## Examples

### Complex Scalar from Two Real Scalars

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

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

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

`a`

— Real component

scalar | vector | matrix | multidimensional array

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`

`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`

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`

`x`

— Input array

scalar | vector | matrix | multidimensional array

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

`z`

— Complex array

scalar | vector | matrix | multidimensional array

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

### Tall Arrays

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

This function fully supports tall arrays. For more 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**

## Open Example

You have a modified version of this example. Do you want to open this example with your edits?

## 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:

## How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

### 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
- United Kingdom (English)