MATLAB Answers

calculate mean af cell

15 views (last 30 days)
fereshte
fereshte on 12 Jul 2014
Edited: fereshte on 13 Jul 2014
I have a cell with 30 rows., In each row there are 39 columns. Every ten folders belong to one person. For each column I want to calculate the average value for the ten folders and give this value instead of 10 different amounts. then do it for folders from 11 to 20 and 21 to 30.

  7 Comments

Show 4 older comments
fereshte
fereshte on 13 Jul 2014
sorry not folder.cell mat contain 30 rows.and each row have 39 features. each 10 row Owned by an individual.but attribute values are different in 10 rowa for each person.for this reason,i want to find the mean values in each 10 rows and put them instead of the original values.
Azzi Abdelmalek
Azzi Abdelmalek on 13 Jul 2014
Each 10 rows from what?
fereshte
fereshte on 13 Jul 2014
rows from 1 to 10 is person one.from 11 to 20 is person two.and 21 to 30 is person three.i want use this cell for person identification

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 12 Jul 2014
Edited: Azzi Abdelmalek on 13 Jul 2014
clear out
m1=reshape(1:30,10,3);
for k=1:3
m=data_matrix(m1(:,k));
f=num2cell(reshape([m{:}],39,[])',1);
out{1,k}=arrayfun(@(x) mean(cell2mat(f{x}'),2),1:39,'un',0);
end
out=repmat(out,10,1)
out=out(:)

  9 Comments

Show 6 older comments
fereshte
fereshte on 13 Jul 2014
i want do train and test with this data.in cell.mat there are 30 rows that each 10 rows Are related to one person but with diffrenet values.For every ten lines must be do mean that you do it perfect. but this mean value should be replaced in 10 rows instead of previous numbers.for 11 to 20 and 21 ta 30 too.output must have 30 rows. that each 10 rows are similar and contain mean valuse
Azzi Abdelmalek
Azzi Abdelmalek on 13 Jul 2014
Look at edited answer
fereshte
fereshte on 13 Jul 2014
thank you so much.

Sign in to comment.

More Answers (1)

Roger Stafford
Roger Stafford on 12 Jul 2014
If your "cell" is an ordinary 'double' 30 x 39 array, A, do this:
B = [mean(A(1:10,:),1);mean(A(11:20,:),1);mean(A(21:30,:),1)];
or else this:
B = reshape(mean(reshape(A,10,[]),1),3,[]);
Either method should work.

  1 Comment

fereshte
fereshte on 12 Jul 2014
i dont write this code.please help me :( my cell attached above its 30*1 cell.then in each cell there are 39 features that they are numerical. name of cell is data_all.mat. what write instead of A?

Sign in to comment.

Sign in to answer this question.

Tags