Changing Array Elements with logical indexing

1 view (last 30 days)
Hi
If I want to change all NaNs in an array A to zero, the following works:
A(isnan(A))=1000
As far as I see the isnan(A) returns nothing but an array of 1's and 0's.
But if I do the following:
B = [ 1 5 8]; B([0 0 1]) = 1000;
to replace the 8 with a 1000, I get an error - why?

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 4 Apr 2014
B = [ 1 5 8];
B(logical([0 0 1])) = 1000;
  2 Comments
MiauMiau
MiauMiau on 4 Apr 2014
thx...then the result of the isnan are logical 1s and 0s?
per isakson
per isakson on 4 Apr 2014
Yes,
>> class( isnan( nan ) )
ans =
logical
>>

Sign in to comment.

More Answers (1)

TAB
TAB on 4 Apr 2014
B(B==8)=1000;

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!