Matlab怎样提取复数数组的角度

来源:百度知道 编辑:UC知道 时间:2024/06/23 21:46:19
俺刚碰到一个问题,简单的说就是随机建立一个值在-M到M的数组A,这个M是比pi要大那么几倍的,然后把A乘上虚数符号j后一起放到exp中,即B=exp(j*A),B就是一个复数数组了。
好了,现在我把A删掉了,即假设我们不知道A只知道B=exp(j*A)的值了,那么可以用什么方法得到A的值呢?:Q 数学上直接对B取对数再除以j就得到了,但在MATLAB里面有什么方法还是有什么相应的函数呢?谢谢高手指点!
1楼的,明白我问的问题没?我的A本来就不仅仅是在主值区间内的,所以用angle是不行的!

“数学上直接对B取对数再除以j”也得不到A,得到的是2n*pi+A。
matlab里求辐角的函数是angle,得到的是辐角主值(-pi,pi],单位是弧度
这个函数本身就支持矩阵运算的
=================
当然明白你的意思,但你明白我的意思了吗?从数学上讲,B=exp(j*A)就不是一个单调函数,是不能从B反推出唯一的A值的。matlab只是一个数学软件,不要试图用它解决理论上无解的问题!!

复数表达,及计算
(1)
z1= 3 + 4i
z1 =
3.0000 + 4.0000i

(2)
z2 = 1 + 2 * i
z3=2*exp(i*pi/6)
z=z1*z2/z3
z2 =
1.0000 + 2.0000i
z3 =
1.7321 + 1.0000i
z =
0.3349 + 5.5801i

复数矩阵的生成及运算
A=[1,3;2,4]-[5,8;6,9]*i
B=[1+5i,2+6i;3+8*i,4+9*i]
C=A*B
A =
1.0000 - 5.0000i 3.0000 - 8.0000i
2.0000 - 6.0000i 4.0000 - 9.0000i
B =
1.0000 + 5.0000i 2.0000 + 6.0000i
3.0000 + 8.0000i 4.0000 + 9.0000i
C =
1.0e+002 *
0.9900 1.1600 - 0.0900i
1.1600 + 0.0900i 1.3700

求上例复数矩阵C的实部、虚部、模和相角。
C_real=real(C)
C_imag=imag(C)
C_magnitude=abs(C)
C_phase=angle(C)*180/pi %以度为单位计算相角
C_real =
99 116
116