How to remove rows with zeros in selected columns?

5 vues (au cours des 30 derniers jours)
Emma Kuttler
Emma Kuttler le 24 Fév 2022
I have a matrix with 1363 rows and 21 columns. The first column is an identifier (1-21). I need to delete all rows that contain all zeroes with the exception of the first column. For example,
a = [ 1 0 5 0 6
2 0 0 0 0
3 3 5 9 12
4 0 0 0 0
5 6 9 1 0]
I want to produce b
b = [ 1 0 5 0 6
3 3 5 9 12
5 6 9 1 0]

Réponse acceptée

Scott MacKenzie
Scott MacKenzie le 24 Fév 2022
Modifié(e) : Scott MacKenzie le 24 Fév 2022
There is probably a simpler solution, but this will work...
a = [ 1 0 5 0 6
2 0 0 0 0
3 3 5 9 12
4 0 0 0 0 ]
a = 4×5
1 0 5 0 6 2 0 0 0 0 3 3 5 9 12 4 0 0 0 0
zeroIdx = ~sum(~a(:,2:end) == 0,2);
a(zeroIdx,:) = []
a = 2×5
1 0 5 0 6 3 3 5 9 12

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by