size(array) fails

1 view (last 30 days)
Douglas Brenner
Douglas Brenner on 27 Oct 2016
Commented: Star Strider on 28 Oct 2016
filteredreducedSection
sz = size(filteredreducedSection)
line one prints 106 columns and 90 rows
Line two gives an error:
Subscript indices must either be real positive integers or logicals.
sz = size(filteredreducedSection)
What gives? Thanks.

Accepted Answer

Star Strider
Star Strider on 27 Oct 2016
Run this line in your Command Window:
which size -all
If the first result is:
size is a variable.
You’ve found the problem. (This is called ‘overshadowing’ of a funciton.) The solution is to rename your ‘size’ variable.
  3 Comments
Douglas Brenner
Douglas Brenner on 28 Oct 2016
Had to close matlab and reopen. Maybe I should have just closed the program. Either way a matlab bug?
Star Strider
Star Strider on 28 Oct 2016
Not a bug at all.
This is the problem:
>> which size -all
size is a variable.
You have to find the ‘size’ variable in your code and rename it. The easiest way is to use the Editor, go to ‘Navigate’ —> ‘Find’ then search on either:
size= -or- size =
depending on your programming style. That should find it. Then rename it to something that makes sense in the context of your code. The Editor should then offer you the opportunity to change all the other uses of your ‘size’ variable. Be careful that you don’t accidentally rename your calls to the size function. (I don’t know if the Editor makes that distinction itself, since I never did it myself and I never tested it.)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!