Imag, real function error

4 ビュー (過去 30 日間)
Sean Pitre
Sean Pitre 2017 年 9 月 12 日
コメント済み: Star Strider 2017 年 9 月 12 日
when I try to use the imag or real functions I get an error saying 'Subscript indices must either be real positive integers or logicals.' I don't get this when I use the isreal or abs functions. Why is this?
  3 件のコメント
Sean Pitre
Sean Pitre 2017 年 9 月 12 日
編集済み: Walter Roberson 2017 年 9 月 12 日
Its a two line test code. Like,
X=2+3i
Y=real(x) or imag(x).
Even if I do it directly like Real(2+3i) I get the error
James Tursa
James Tursa 2017 年 9 月 12 日
Try clearing all variables first, and then re-try your code to confirm that it is a variable naming issue or not.

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

回答 (2 件)

James Tursa
James Tursa 2017 年 9 月 12 日
編集済み: James Tursa 2017 年 9 月 12 日
It could be that you have inadvertently created variables with the name "real" or "imag" that are shadowing the functions real and/or imag.

Star Strider
Star Strider 2017 年 9 月 12 日
編集済み: Star Strider 2017 年 9 月 12 日
My guess is that you used ‘imag’ and ‘real’ as variables somewhere earlier in your code. The solution is to find those variables and rename them. (The builtin (link) function can shed light on this.)
Example
imag = 42;
x = 1 + 2*j;
A1 = builtin('imag', x)
A2 = imag(x)
yields:
A1 =
2.0000e+000
For ‘A2’:
Subscript indices must either be real positive integers or logicals.
Error in FileName (line #####)
A2 = imag(x)
  3 件のコメント
James Tursa
James Tursa 2017 年 9 月 12 日
What does this show?
which real
which imag
Star Strider
Star Strider 2017 年 9 月 12 日
The which function can be helpful.
Note all the results from:
which real -all
If the first result is:
real is a variable.
you’ve found the problem.

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

カテゴリ

Help Center および File ExchangeConvert Image Type についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by