hello sir i want real values but when i write my function in matlab s(ii)==real (s(ii)); it give me complex value how to solve it
1 view (last 30 days)
Show older comments
ii=1:2;
s(ii)=real(s(ii));
s(ii)=round(log(z(ii))*N/j/2/pi)+1;
this is my short function please guide me where i am wrong
0 Comments
Accepted Answer
Thorsten
on 30 Jun 2016
Edited: Thorsten
on 30 Jun 2016
real is the real part of a complex number. Unless you do not have re-defined Matlab's real, this should work.
To check if you use the real "real", type
which real
Further, the lines
s(ii)=real(s(ii));
s(ii)=round(log(z(ii))*N/j/2/pi)+1;
don't make sense. The result would be the same without the first line, because s ist not used in the second line, so the s from the first line is simple replaced.
Do you want
z(ii)=real(z(ii));
s(ii)=round(log(z(ii))*N/j/2/pi)+1;
Also, if the argument of log is negative, the result will be complex. And round rounds, but does not discard the imaginary part. You can use abs or real, but of course I don't know if this is what you want to compute.
2 Comments
Walter Roberson
on 30 Jun 2016
Perhaps you want to reverse the lines,
s(ii)=round(log(z(ii))*N/j/2/pi)+1;
s(ii)=real(s(ii));
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!