Sum elements in matrix if equal to value in another element
4 views (last 30 days)
Show older comments
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 Comments
Answers (2)
Thorsten
on 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 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!