MATLAB复数类型
复数是指既包含实部又包含虚部的数,虚部的单位是 -1 的开平方根,在 MATLAB 中用字母 i 或 j 中的一个表示,i 和 j 的作用是完全一样的。
复数出现在许多科研工作问题上,例如,在电力工程中,可以用复数代表交变电压、交变电流和阻抗。描述电气系统行为的公式经常用到复数。
作为一个工程师,如果没有很好地理解和运用复数,将无法工作。复数的一般形式如下:
由于复数有两个部分,所以它能在平面内标出。这个平面的横轴是实轴,纵轴是虚轴,所以复数在这个平面内为一个点,横轴为 a,纵轴为 b。用上面的方式表示一个复数,称为直角坐标表示,坐标的横轴与纵轴分别代表复数的实部与虚部。
若复数在一个平面内,则有另一种表达方式,即极坐标表示,公式如下:
1) 直接生成,请看下面的代码:
2) 使用 complex() 函数生成,请看下面的代码:
也可以这样使用 complex() 函数,具体代码如下:
再来看一个更加复杂的例子:
通过 real() 和 imag() 函数可以把复数分为实数和虚数部分,此处不再举例,有兴趣的读者请自行测试。
下表为常见的支持复数运算的 MATLAB 函数。
在本节的最后,将上面介绍过的数据类型汇总成表,如下表所示,给出适合 MATLAB 支持的数据类型函数。
复数出现在许多科研工作问题上,例如,在电力工程中,可以用复数代表交变电压、交变电流和阻抗。描述电气系统行为的公式经常用到复数。
作为一个工程师,如果没有很好地理解和运用复数,将无法工作。复数的一般形式如下:
C = a + bi
其中 C 为复数,a 和 b 均为实数,i 代表 -1 的开平方根。a、b 分别为 C 的实部和虚部。由于复数有两个部分,所以它能在平面内标出。这个平面的横轴是实轴,纵轴是虚轴,所以复数在这个平面内为一个点,横轴为 a,纵轴为 b。用上面的方式表示一个复数,称为直角坐标表示,坐标的横轴与纵轴分别代表复数的实部与虚部。
若复数在一个平面内,则有另一种表达方式,即极坐标表示,公式如下:
c = a + bi = z∠θ
其中 z 代表向量的模,θ 代表辐角。直角坐标中的 a、b 和极坐标 z、θ 之间的关系为:
a = z cosθ
b = z sinθ
z = ( a2+b2) 1/2
θ = tan-1 (b/a)
创建复数
在 MATLAB 中创建复数有两种方法:直接生成或者使用 complex() 函数生成。1) 直接生成,请看下面的代码:
>> x = 2 + 3i x = 2.0000 + 3.0000i所谓直接生成,也就是将复数直接写出来。
2) 使用 complex() 函数生成,请看下面的代码:
>> x=2 >> y=4 >> z=complex(x, y) z = 2.0000 + 4.0000i其中 x、y 为实数,得到的 z 是以 x 为实部,y 为虚部的复数。
也可以这样使用 complex() 函数,具体代码如下:
>> x=2 >> z=complex(x) z = 2.0000 + 0.0000i其中 x 为实数,得到的 z 是以 x 为实部,以 0 为虚部的复数。
再来看一个更加复杂的例子:
>> x = rand(3) * 5; >> y= rand(3) * -8; >> z = complex(x,y) z = 4.0736 - 7.7191i 4.5669 - 7.6573i 1.3925 - 1.1351i 4.5290 - 1.2609i 3.1618 - 3.8830i 2.7344 - 3.3741i 0.6349 - 7.7647i 0.4877 - 6.4022i 4.7875 - 7.3259i上例中应用 rand(3) 函数生成 3×3 的随机数矩阵。
通过 real() 和 imag() 函数可以把复数分为实数和虚数部分,此处不再举例,有兴趣的读者请自行测试。
下表为常见的支持复数运算的 MATLAB 函数。
函数名 | 描述 |
---|---|
conj(c) | 计算 c 的共轭复数,如果 c=a+bi,那么 conj(c)=a-bi |
real(c) | 返回复数 c 的实部 |
inag(c) | 返回复数 c 的虚部 |
isreal(c) | 如果数组 c 中没有一个元素有虚部,函数 isreal(c) 将返回 1;所以如果一个数组 c 是 复数组成,那么 isreal(c) 将返回 0 |
abs(c) | 返回复数 c 的模 |
angle(c) | 返回复数 c 的幅角 |
在本节的最后,将上面介绍过的数据类型汇总成表,如下表所示,给出适合 MATLAB 支持的数据类型函数。
函数名 | 描述 |
---|---|
double | 创建或转化为双精度数据类型 |
single | 创建或转化为单精度数据类型 |
int8,int16,int32,int64 | 创建或转化为有符号整数数据类型 |
uint8,uint16,uint32,uint64 | 创建或转化为无符号整数数据类型 |
isnumeric | 若是整数或浮点数据类型,返回 true |
isinteger | 若是整数数据类型,返回 true |
isfloat | 若是单精度或双精度数据类型,返回 true |
isa(x,'type') | type 包括 numeric、integer 和 float,当 x 类型为 type 时,返回 true |
case(x,'type') | 将 x 类型置为 type |
intmax('type') | type 数据类型的最大整数值 |
intmin('type') | type 数据类型的最小整数值 |
realmax('type') | type 数据类型的最大浮点实数值 |
realmin('type') | type 数据类型的最小浮点实数值 |
eps('type') | type 数据类型的 eps 值(浮点值) |
eps(x) | x 的 eps 值,即 x 与 MATLAB 能表示的和其相邻的同数据类型的那个数之间的距离 |
zeros(...,'type') | 创建数据类型为 type 的全 0 阵列 |
ones(...,'type') | 创建数据类型为 type 的全 1 阵列 |
eye(...,'type') | 创建数据类型为 type 的单位阵列 |
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算