Oh no! A(A==0)=NaN is turning my matrix into all zeros!!

1 view (last 30 days)
Okay, I'm feeling like an idiot, what on earth could I be doing wrong?
>> whos KoppenDsb_airT
Name Size Bytes Class Attributes
KoppenDsb_airT 360x720x361 374284800 single
>> min(min(KoppenDsb_airT))
ans(:,:,1) =
-26.5479
ans(:,:,2) =
-23.5349
ans(:,:,3) =
-22.6819
ans(:,:,4) =
-17.3890
ans(:,:,5) =
-12.0117
ans(:,:,6) =
-8.7705
ans(:,:,7) =
-5.3165
ans(:,:,8) =
0
ans(:,:,9) =
0
etc...
KoppenDsb_airT(KoppenDsa_airT==0)= nan;
>> min(min(KoppenDsb_airT))
ans(:,:,1) =
0
ans(:,:,2) =
0
ans(:,:,3) =
0
ans(:,:,4) =
0
ans(:,:,5) =
0
ans(:,:,6) =
0
ans(:,:,7) =
0
ans(:,:,8) =
0
ans(:,:,9) =
0
etc...
Any idea what I'm doing wrong? Thanks!

Accepted Answer

the cyclist
the cyclist on 12 Jul 2013
Edited: the cyclist on 12 Jul 2013
I think you may be mixing up your variables
KoppenDsa_airT
and
KoppenDsb_airT
Still, the result is puzzling to me.
Is the array the same shape after that operation?
  3 Comments
Kate
Kate on 12 Jul 2013
Another question: I'm trying to look at my whole KoppenDsb (monthly data) over my 30 year climate period.
KoppenDsb_airT(KoppenDsb_airT==0)= nan;
Dsb_airT_climatology=mean(reshape(KoppenDsb_airT,[],361),1);
but now my min and max are NaN's. Is there a better way to do this?
Matt Kindig
Matt Kindig on 12 Jul 2013
If you have the Statistics toolbox installed, you can you nanmean() to take the mean and ignore NaN's.
doc nanmean

Sign in to comment.

More Answers (0)

Tags

Products

Community Treasure Hunt

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

Start Hunting!