Finding row index in a matrix in which the sum of the elements is greater than 1

4 views (last 30 days)
I have the following matrix:
S=[1,0,0;0,1,0;1,1,0;0,1,1;0,0,1]
I want to find row indexes in which the sum of the elements is greater than 1.
How can I do this?
Thanks

Accepted Answer

John D'Errico
John D'Errico on 17 Feb 2023
Edited: John D'Errico on 17 Feb 2023
Just do EXACTLY what you said. I'll break it down into pieces.
S=[1,0,0;0,1,0;1,1,0;0,1,1;0,0,1]
S = 5×3
1 0 0 0 1 0 1 1 0 0 1 1 0 0 1
sum(S,2) % sum of the rows
ans = 5×1
1 1 2 2 1
sum(S,2) > 1 % testing if they exceed 1
ans = 5×1 logical array
0 0 1 1 0
find(sum(S,2) > 1) % which rows satisfy that requirement?
ans = 2×1
3 4
When you have a problem that is larger than your current abilities, break it into small, managable pieces. Solve each part, one at a time. Then put it all together. Eat a programming elephant one byte at a time.

More Answers (1)

Mathieu NOE
Mathieu NOE on 17 Feb 2023
hello
here you are
S=[1,0,0;0,1,0;1,1,0;0,1,1;0,0,1]
S = 5×3
1 0 0 0 1 0 1 1 0 0 1 1 0 0 1
row_sum = sum(S,2);
rw_ind = find(row_sum>1)
rw_ind = 2×1
3 4

Tags

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!