# 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 ビュー (過去 30 日間)
irfan 2016 年 6 月 30 日

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

サインインしてコメントする。

### 採用された回答

Thorsten 2016 年 6 月 30 日

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 件のコメント表示非表示 1 件の古いコメント
irfan 2016 年 6 月 30 日
sir thank you i understand your point

サインインしてコメントする。

### Community Treasure Hunt

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

Start Hunting!