Matrix number of rows reduction to a smaller number of rows.
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Pappu Murthy
le 24 Mai 2018
Modifié(e) : Stephen23
le 25 Mai 2018
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.
2 commentaires
Majid Farzaneh
le 24 Mai 2018
Modifié(e) : Majid Farzaneh
le 24 Mai 2018
Hi. I'm not completely sure about my understanding. Is this a correct example for your problem???
Input=
3 1 1 2 4 5 6
3 4 5 6 2 5 6
3 2 3 5 6 3 7
Output =
3 2.3333 3.0000 4.3333 4.0000 4.3333 6.3333
Which 2.3333 is mean of 1,4,2 (column 2) and 3.000 is mean of 1,5,3 (column 3) etc.
Réponse acceptée
Majid Farzaneh
le 24 Mai 2018
Modifié(e) : Majid Farzaneh
le 24 Mai 2018
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
2 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrices and Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!