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

8 views (last 30 days)
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

Accepted Answer

Walter Roberson
Walter Roberson on 1 Oct 2015
T = str2double(YourCellArray);
T(isnan(T)) = [];

More Answers (1)

Oscar Hernandez
Oscar Hernandez on 2 Oct 2015
Awesome, thank you Walter Roberson

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!