Main Content

complex

创建复数数组

说明

示例

z = complex(a,b) 通过两个实数输入创建一个复数输出 z,这样 z = a + bi

complex 函数非常有用,在一定情况下可替代如下的表达式:a + 1i*ba + 1j*b

  • ab 不是 doublesingle

  • b 全部为零

示例

z = complex(x) 返回 x 的等效复数,这样 isreal(z) 返回逻辑值 0 (false)。

  • 如果 x 是实数,则 zx + 0i

  • 如果 x 是复数,则 zx 相同。

示例

全部折叠

使用 complex 函数创建复数标量 3 + 4i

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

基于两个实数 uint8 向量创建复数 uint8 向量。z 的大小(4×1)与输入参数的大小相同。

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

创建一个不包含虚部的复数标量。

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

验证 z 是否为复数。

isreal(z)
ans = logical
   0

输入参数

全部折叠

实部,指定为标量、向量、矩阵或多维数组。

a 的大小必须与 b 的大小匹配,除非其中一个为标量。如果 ab 为标量,则 MATLAB® 将扩展该标量以匹配另一输入的大小。

ab 可以具有不同数据类型。但是,如果 ab 中的任一个具有整数数据类型,则另一个输入必须具有相同的整数类型或是满(非稀疏)双精度标量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

虚部,指定为标量、向量、矩阵或多维数组。

b 的大小必须与 a 的大小匹配,除非其中一个为标量。如果 ab 为标量,则 MATLAB 将扩展该标量以匹配另一输入的大小。

ab 可以具有不同数据类型。但是,如果 ab 中的任一个具有整数数据类型,则另一个输入必须具有相同的整数类型或是满(非稀疏)双精度标量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

输入数组,指定为标量、向量、矩阵或多维数组。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
复数支持:

输出参数

全部折叠

复数数组,以标量、向量、矩阵或多维数组的形式返回。

z 的大小与输入参数的大小相同。

下面描述了当 ab 具有不同的数据类型时 z 的数据类型。

  • 如果 absingle,则 zsingle

  • 如果 ab 中任一个的类型是 logical,则 z 具有非逻辑输入的数据类型。

  • 如果 ab 为整数数据类型,则 z 是相同的整数数据类型。

此外,仅当输入参数 ab 都为稀疏时,z 才是稀疏的。

提示

  • 如果 b 仅包含零,则 z 是复数,其所有虚部分量的值为 0。相比之下,加法 a + 0i 返回严格的实数结果。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

| | | | | | |