Sum every i-th column in matrix seperately

8 views (last 30 days)
Hi all,
I have randomly generated matrix and I want to go through all columns and to sum every i-th column separately. I don't want to sum all the columns but to sum depending on the counter in for loop for example:
[a,b] = size(C);
for i = 1:b
S = sum(C(:,i))
S = 0 %but this doesn't work, result is sum of elements of all columns

Accepted Answer

Zikobrelli
Zikobrelli on 12 Jun 2014
Try sum(A(:,[1 4]))
where A is your random matrix.The line above will give you the sums of column 1 and 4.
ex: A=spiral(4)
sum(A(:,[1 4]))
ans = 34 46
  8 Comments
Anya
Anya on 12 Jun 2014
I can't believe that I missed this last control row . I don't have a lot of experience so I didn't noticed. I change the code now by changing the sum function and it works ! Thanks
sum(C(1:end-1,i))

Sign in to comment.

More Answers (2)

Roger Stafford
Roger Stafford on 12 Jun 2014
S = sum(C(:,i:i:end),1);
This results in a row vector, S, consisting of the sum of every i-th column of C, as requested. It is not clear where you want the i-spaced columns to start. This starts at the i-th column. If you want them to start at the first column, change "i:i:end" to "1:i:end".
  1 Comment
Anya
Anya on 12 Jun 2014
I think that I was not clear enough. I will try to explain on the example matrix C. Using for loop I want to iterate through the columns and count number of non-zero elements. They are written after the last row. If I found the column with all ones or all zeros I want to skip that column and move on.
C =
1 1 1 1 0 1 1 1 1 0
0 1 1 0 0 0 1 1 1 0
0 1 0 1 0 0 0 1 0 0
0 1 1 0 1 0 0 0 0 0
1 4 3 2 1 1 1 3 2 0

Sign in to comment.


Jos (10584)
Jos (10584) on 12 Jun 2014
sumColsC = sum(C,1)
NotInteresting = sumColsC == 0 | sumColsC == size(C,2)
sumColsC(NotInteresting) = []
  3 Comments
Jos (10584)
Jos (10584) on 12 Jun 2014
When you change the iterator in a for-loop, it will reset at the end
for k=1:10
disp(k) ;
k = 1 ;
disp(k) ;
end
You should be clearer about your goals. What do you mean with "move on"?

Sign in to comment.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!