Azzera filtri
Azzera filtri

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

4 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

John D'Errico
John D'Errico il 17 Feb 2023
Modificato: John D'Errico il 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.

Più risposte (1)

Mathieu NOE
Mathieu NOE il 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

Tag

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by