MATLAB: How to convert a cell array into a numeric array using MATLAB replacing non-numeric values to NaN

arraycellcell2matcell2numconversionMATLABnumbersnumeric

I have a cell array which contains numeric and non-numeric data. I need to convert this cell array into a numeric array with all the non-numerical elements set to 'NaN'.
I have tried the CELL2MAT function but this function does not work with non-numerical data types.

Best Answer

The ability to automatically convert cell arrays which contain both numeric and non-numeric data types is not available in MATLAB 7.6 (R2008a).
However, there are a number of ways to programmatically achieve conversion of a cell array to numeric data. One such method using CELLFUN is shown below:
Let x be a cell array containing both numeric and non-numeric data
x = {'text', 34; 45, @(a)2*a}
Find logical indices to all numeric elements of x
numind = cellfun(@isnumeric, x);
Replace non-numeric indices with NaNs
x(~numind) = {NaN}