Sum elements in matrix if equal to value in another element
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have the matrix OVEC, which consists of a number of column vectors with numbers
How do I sum all the elements in each column between row 2 and end if their values are the same as the value in row 1? The procedure should return a row vector of width size(OVEC(1,:))
So if
OVEC = [ 1 2 3 4 5 6
1 1 1 1 1 1
1 6 4 5 5 5
4 4 4 4 4 3];
then I should return the row vector [2, 0, 0, 1, 0]
I tried:
Osumvec = sum(ovec(2:end)==ovec(1,:),1)
But my code is erroneous.
3 commentaires
Réponses (2)
Thorsten
le 7 Oct 2014
To sum the elements
for i=1:size(ovec, 2)
r(i) = sum(ovec(find(ovec(2:end,i)==ovec(1,i))+1, i));
end
To count the elements
for i=1:size(ovec, 2)
r(i) = sum(ovec(2:end,i)==ovec(1,i));
end
0 commentaires
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!