conditionally deleting matrix rows
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Abdelwahab Fawzy
le 13 Juil 2016
Commenté : Image Analyst
le 19 Fév 2022
Hi all,
I wish to delete matrix rows according to a condition imposed over its columns. let assume the matrix is of 10x2 (rows x columns) size.
A= [16 45; 79 8; 31 23; 53 91; 17 15; 60 83; 26 54; 65 100; 69 8; 75 44]
I want to delete the row if either A(i,1) or A(i,2) is larger than 50
A= [16 45; 31 23; 17 15]
0 commentaires
Réponse acceptée
Image Analyst
le 13 Juil 2016
Try this:
A= [16 45; 79 8; 31 23; 53 91; 17 15; 60 83; 26 54; 65 100; 69 8; 75 44]
rowsToDelete = any(A>50, 2)
A(rowsToDelete,:) = []
4 commentaires
Romain Hautier
le 19 Fév 2022
Hello,
I know it has been a long time since you answered but I have an additional question. Is it possible to delete rows and colums satisfying a condition all at once? Say I have a matrix A = [1 2 3; 3 0 0; 1 2 0], would I be able to delete all rows and columns containing a 0 all at once to be left with A = [1]?
Thank you in advance.
Image Analyst
le 19 Fév 2022
A = [1 2 3; 3 0 0; 1 2 0]
rowsToDelete = any(A == 0, 2)
columnsToDelete = any(A == 0, 1)
A(rowsToDelete, :) = [];
A(:, columnsToDelete) = []
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Programmatic Model Editing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!