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 日間)
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
Thorsten 2016 年 6 月 30 日
編集済み: 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 件のコメント
Walter Roberson
Walter Roberson 2016 年 6 月 30 日
Perhaps you want to reverse the lines,
s(ii)=round(log(z(ii))*N/j/2/pi)+1;
s(ii)=real(s(ii));
irfan
irfan 2016 年 6 月 30 日
編集済み: irfan 2016 年 6 月 30 日
sir thank you i understand your point

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by