MATLAB: Matrix number of rows reduction to a smaller number of rows.

arraymatrix arraymean rows.

I have a matrix for example Nrow, by 6 let us say. The first column has numbers 1 thru n which is less than Nrow.. so some rows have same number in column 1. for example the number 3 may be occurring three times and number 4, 4 times etc. I have to reduce the matrix rows from Nrow to n… the rows which have same column 1 number have to be replace by one row which is is a mean of all rows with same number. for e.g. row with column number 3 could be like this
3, 1, 1, 2, 4, 5, 6
3, 4, 5, 6, 2, 5, 6
3, 2, 3, 5, 6, 3, 7
so we have three rows with same column 1 that is 3. so I replace these three rows with one row; 3, mean of all three rows. So basically i squeeze the Matrix of [Nrow, 6] to a matrix of [n, 6]; How do I do this?
Thanks in advance.

Best Answer

Use this:
% A is your input matrix and B is squeezed matrix
for i=1:n
idx=find(i==A(:,1));
B(i,:)=mean(A(idx,:),1);
end