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

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 commentaires

C.J. Harris
C.J. Harris le 15 Juin 2012
Why don't you use the numeric data to compute the mean etc?
Cristina
Cristina le 15 Juin 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...

Connectez-vous pour commenter.

Réponses (4)

Kye Taylor
Kye Taylor le 15 Juin 2012

1 vote

To convert cell to matrix use the cell2mat functions. For example,
mean(cell2mat(Raw(:,7)))
Andrei Bobrov
Andrei Bobrov le 15 Juin 2012

0 votes

sum for arguments of type double
eg
mean(Num(:,7));

1 commentaire

Cristina
Cristina le 15 Juin 2012
ok but this is not a conditional mean...I need to compute the mean if eg country='IT'

Connectez-vous pour commenter.

Peter Perkins
Peter Perkins le 15 Juin 2012

0 votes

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
Syed Zubair shah le 20 Mar 2022

0 votes

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 ?
[Num,Txt,Raw] = xlsread(filename)

1 commentaire

Image Analyst
Image Analyst le 20 Mar 2022
Modifié(e) : Image Analyst le 20 Mar 2022
[Num,Txt,Raw] = xlsread(filename, sheetName, 'F1:F1600');

Connectez-vous pour commenter.

Catégories

Question posée :

le 15 Juin 2012

Modifié(e) :

le 20 Mar 2022

Community Treasure Hunt

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

Start Hunting!

Translated by