Please tell me what's wrong here with the exp (1j*theta)

I am trying to find the theta part from an exponential value.
Suppose, i take a variable
z=exp(1i*5);
so this will give me
z =
0.2837 - 0.9589i
Now i want to find that "5" from this value. So, i go with this "angle(z)" and matlab shows
ans =
-1.2832
Shouldn't it be 5, according to theory ??
Or if i go with the eular formula like, exp(i*theta)= cos(theta) + i*sin(theta)
so, theta= atan(0.2837/-0.9589) = -0.2877 !!
How do i get the theta=5 back, i don't know if i am missing something.

 采纳的回答

The reason is that:
5 rad = -1.2832 rad % (-1.2832 + 2*pi = 5)
That is:
x = x + n*2*pi; % where x is an angle in radians, and n is an integer.
Matlab will always give you values between +/- pi.
And you use Eular the wrong way around: tan = sin/cos, not cos/sin.
=)
- Rob

6 个评论

5 rad = -1.2832 rad ?? you mean -1.2832 degree ?? but 5 radians = 286.478 degrees, i think.. or please tell me how do i get the 5 back.
No, I meant what I said. If you want 5 back, you need to add 2*n*pi, where n is an integer (in this case 1). Why would you want an angle that is more than 2*pi? That's the equivalent of an angle larger than 360 degrees.
If you absolutely need the number you used in the exponential function, I recommend you save it as a variable, and use that variable later in your work.
x = 5;
z = exp(1i*x);
yeah, you are right it's y/x not the other way around. thanks you for help.
If the answer provided is sufficient, please accept it. If not, explain what parts are not clear, and you will get additional help (from me or others). =)
thank you, for your reply, and as you've mentioned .. that i could save this variable to use later, but i will actually send this variable as a signal of "exp(1j*x)" to the receiver and receiver will extract 5 from this. So, i can't actually save it as a variable.
anyway, what i understood is this
>> angle(exp(1j*5)) +2*pi
ans =
5
>> angle(exp(1j*4)) +2*pi
ans =
4.0000
It works here but, when i go for 1 or 2...
>> angle(exp(1j*2)) +2*pi
ans =
8.2832
>> angle(exp(1j*1)) +2*pi
ans =
7.2832
shouldn't this be 1 and 2, as it worked for 4 and 5 ??
No. Valid angles are in the area (-pi < x < pi). Since 4 and 5 are outside this area, the angles are not 4 and 5 (but -1.283.. etc). However, 1 and 2 are within the valid area, thus the angle is equal to 1 and 2 (without adding any +/-k*2*pi).

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by