MATLAB: Use isnan with input excel data containing a combination of strings and empty cells in a row

cell arraysempty cell elementsexcel inputisnannanraw datastring arrays

When I read raw data from an excel file named INFILE.xls, I usually want to remove the free spaces between columns afterward and have a string array composed only of the existng text.
[num, str, raw]=xlsread(INFILE)
samplerow=raw(1,:)
The result is:
{'first string'} {'second string'} {[NaN]} {[NaN]} {[NaN]} {[NaN]} {'third string'} ...
I would like to then have a string array like this:
strArray={'first string'} {'second string'} {'third string'} ...
If I try to find and remove the NaN elements using isnan I receive the error message
All contents of the input cell array must be of the same data type.
How can I work aorund this?

Best Answer

  • If you just want the text:
    [num, str, raw] = xlsread(INFILE)
    samplerow = str(1,:);
    samplerow(cellfun(@isempty,samplerow)) = [];