Convert cell array to numerical array while keeping format and removing NAN

12 visualizzazioni (ultimi 30 giorni)
I have a cell array comprised of a single column and many rows. Some rows have 'NAN' and some have numbers such as 42.54. I want to extract the data from this cell array while keeping the format. I also want to get rid of the NAN values. I don't care if the NAN values are removed completely or replaced with 0. A for loop was ineffective and took to long. I tried isnan and isfinite, but they did not seem to remove the nan. I also tried cell2mat but that removes the format of my column and puts every character together. My cell looks something like this:
'NAN'
'NAN'
'NAN'
'NAN'
'NAN'
'NAN'
'NAN'
'43.16'
'43.16'
'43.1'
'43.1'
'43.08'
'43.08'
'43.06'
'NAN'
'NAN'
'NAN'
'43.1'
'43.1'
'43.08'
'43.08'
However there are thousands of data points and hundreds of 'NAN' scattered throughout.
Thank you

Risposta accettata

Walter Roberson
Walter Roberson il 1 Ott 2015
T = str2double(YourCellArray);
T(isnan(T)) = [];

Più risposte (1)

Oscar Hernandez
Oscar Hernandez il 2 Ott 2015
Awesome, thank you Walter Roberson

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by