目录
complex函数的功能是创建复数数组
语法
z = complex(a,b)
z = complex(x)
说明
z = complex(a,b) 通过两个实数输入创建一个复数输出 z,这样 z = a + bi。
complex 函数非常有用,在一定情况下可替代如下的表达式:a + 1i*b 或 a + 1j*b
-
a 和 b 不是 double 或 single
-
b 全部为零
z= complex(x) 返回 x 的等效复数,这样 isreal(z) 返回逻辑值 0 (false)。
-
如果 x 是实数,则 z 是 x + 0i。
-
如果 x 是复数,则 z 与 x 相同。
示例
来自两个实数标量的复数标量
使用 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
创建复数
复数由两个单独的部分组成:实部和虚部。基本虚数单位等于 -1 的平方根。这在 MATLAB® 中通过以下两个字母之一表示:i 或 j。
以下语句显示了一种在 MATLAB 中创建复数值的方法。变量 x 被赋予了一个复数值,该复数的实部为 2,虚部为 3:
x = 2 + 3i;
创建复数的另一种方法是使用comlplex函数。此函数将两个数值输入组合成一个复数输出,并使第一个输入成为实部,使第二个输入成为虚部:
x = rand(3) * 5;
y = rand(3) * -8;
z = complex(x, y)
z =
4.7842 -1.0921i 0.8648 -1.5931i 1.2616 -2.2753i
2.6130 -0.0941i 4.8987 -2.3898i 4.3787 -3.7538i
4.4007 -7.1512i 1.3572 -5.2915i 3.6865 -0.5182i
可以使用real和imag函数分解复数,捕获其实部和虚部:
zr = real(z)
zr =
4.7842 0.8648 1.2616
2.6130 4.8987 4.3787
4.4007 1.3572 3.6865
zi = imag(z)
zi =
-1.0921 -1.5931 -2.2753
-0.0941 -2.3898 -3.7538
-7.1512 -5.2915 -0.5182
实部,指定为标量、向量、矩阵或多维数组。
a 的大小必须与 b 的大小匹配,除非其中一个为标量。如果 a 或 b 为标量,则 MATLAB® 将扩展该标量以匹配另一输入的大小。
a 和 b 必须具有相同的数据类型,以下情况例外:
-
single 可与 double 组合使用。
-
满(非稀疏)标量 double 可与整数数据类型组合使用。
虚部,指定为标量、向量、矩阵或多维数组。
b 的大小必须与 a 的大小匹配,除非其中一个为标量。如果 a 或 b 为标量,则 MATLAB 将扩展该标量以匹配另一输入的大小。
a 和 b 必须具有相同的数据类型,以下情况例外:
-
single 可与 double 组合使用。
-
满(非稀疏)标量 double 可与整数数据类型组合使用。
复数数组,以标量、向量、矩阵或多维数组的形式返回。
z 的大小与输入参数的大小相同。
下面描述了当 a 和 b 具有不同的数据类型时 z 的数据类型。
-
如果 a 或 b 为 single,则 z 为 single。
-
如果 a 或 b 为整数数据类型,则 z 是相同的整数数据类型。
此外,仅当输入参数 a 和 b 都为稀疏时,z 才是稀疏的。
提示
-
如果 b 仅包含零,则 z 是复数,其所有虚部分量的值为 0。相比之下,加法 a + 0i 返回严格的实数结果。