MATLAB: Cellfun(@isnan) and erasing NaN

isnan cellfun nan

Dear all,
I have a matrix like this in excel file:
A=[a, 1, NaN, 1, 1, 1, 1;...
b, 2, NaN, NaN, NaN, NaN, NaN;...
c, 3, NaN, 3, 3, 3, 3];
and I want to erase the rows in which has NaN starting from fourth column. In another words I would like to have
B=[a, 1, NaN, 1, 1, 1, 1;...
c, 3, NaN, 3, 3, 3, 3];
I used this:
[ndata, text, a] = xlsread('test.xls');
xlswrite('newfile.xls', a(~any(cellfun(@isnan,a), 2), :));
But it works just in cases of having numbers in the excel file. But with the above example ,in which I have a, b,and c, I receive this error:
Error using cellfun Non-scalar in Uniform output, at index 1, output 1. Set 'UniformOutput' to false.
Or if you have other idea to do this operation please let me know.

Best Answer

Close!
A={'a', 1, NaN, 1, 1, 1, 1;...
'b', 2, NaN, NaN, NaN, NaN, NaN;...
'c', 3, NaN, 3, 3, 3, 3};
B = A(~any(cellfun(@isnan,A(:,4:end)),2),:)