How to get TRUE/FLASE to work for arrays of cells with mixed string and integer values?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a 1x14 cell array:
data{1} = 9 9 NaN 6 19 8 17 7 15 31 6 18 4 13
I am trying to apply a T/F logic test to it:
tf = data{1} == NaN;
But I get 1x14 vector of zeroes, doesn't seem to work for non-integers.
Whats the best way to check for a string value?
The end goal is to remove the cells containing 'NaN' from the array.
Thank you!
0 Kommentare
Akzeptierte Antwort
Matt Fig
am 13 Okt. 2012
NaN is not a string, but is the symbol for Not-A-Number. For example, 0/0 will produce NaN. To remove the nans, do something like this:
data{1} = [9 9 NaN 6 19 8 17 7 15 31 6 18 4 13];
data{1} = data{1}(~isnan(data{1}))
If, rather than remove the nans you wish to replace them with something like zero, to this:
data{1} = [9 9 NaN 6 19 8 17 7 15 31 6 18 4 13];
data{1}(isnan(data{1})) = 0
Weitere Antworten (1)
Walter Roberson
am 13 Okt. 2012
Bearbeitet: Walter Roberson
am 13 Okt. 2012
You need to use isnan() to compare to NaN. NaN does not test equal to anything, including itself.
NaN == NaN
will give false.
You do not show any strings in your sample input.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!