# [Num,Txt,R​aw]=xlsrea​d......

43 views (last 30 days)
Cristina on 15 Jun 2012
Edited: Image Analyst on 20 Mar 2022
I used [Num,Txt,Raw]=xlsread to import a matrix containing both numerical and text data and Raw is a 2000*8 cell. When I try to compute eg mean(Raw(.,7)) the following message appears:
??? Undefined function or method 'sum' for input arguments of type 'cell'.
Error in ==> mean at 29 y = sum(x)/size(x,dim);
How can I convert cel into num values?
Thanks
##### 2 CommentsShowHide 1 older comment
Cristina on 15 Jun 2012
Because I have to make computations conditional to a list of variables.... e.g. Raw contains a colums country, rating... and I have to compute let's say the mean only if country=IT and rating=BBB. So I need both numerical and text data...

Kye Taylor on 15 Jun 2012
To convert cell to matrix use the cell2mat functions. For example,
mean(cell2mat(Raw(:,7)))

Andrei Bobrov on 15 Jun 2012
sum for arguments of type double
eg
mean(Num(:,7));
##### 1 CommentShowHide None
Cristina on 15 Jun 2012
ok but this is not a conditional mean...I need to compute the mean if eg country='IT'

Peter Perkins on 15 Jun 2012
Cristina, if you have access to the Statistics Toolbox, you might find that using a dataset array is helpful the kind of thing you seem to be describing. You can read a spreadsheet into a dataset array, and then, for example, compute the mean of one variable conditional on values of other numeric or non-numeric variables.
This example on the File Exchange
seems more or less the kind of thing you are describing.

Syed Zubair shah on 20 Mar 2022
what does it means of Num , txt , Raw ... can we just assign it by T =xlsread(filename) ... if yes then how we call specific column then like F is a column of 1600 rows ?
##### 1 CommentShowHide None
Image Analyst on 20 Mar 2022
Edited: Image Analyst on 20 Mar 2022
[Num,Txt,Raw] = xlsread(filename, sheetName, 'F1:F1600');