Effacer les filtres
Effacer les filtres

Finding 0 in data for n X 2 array

2 vues (au cours des 30 derniers jours)
Darren Lim
Darren Lim le 2 Jan 2021
Commenté : Darren Lim le 2 Jan 2021
hi all,
Good day! pretty new to matlab, and used to be a java programmer that is more familiar with for loops. I do know there are certain elegance in matlab by using some Matlab functions on matrix / arrays.
I have a simple problem that i think can be resolved without a for loop, and i think we can use the "All" function in Matlab but i couldn't grasp it just yet.
I have the below data.
36 -31
36 -27
0 0
35 -30
0 0
32 -30
0 0
31 -30
0 0
32 -30
, just wanted to remove the whole row if both values are 0 in the same row. Is it possible without doing a for loop? Thank you!
Darren

Réponse acceptée

KALYAN ACHARJYA
KALYAN ACHARJYA le 2 Jan 2021
Modifié(e) : KALYAN ACHARJYA le 2 Jan 2021
Another way
result=data(~(data(:,1)==0 & data(:,2)==0),:)
result =
36 -31
36 -27
35 -30
32 -30
31 -30
32 -30
  1 commentaire
Darren Lim
Darren Lim le 2 Jan 2021
thank you Kalyan, this works ! :)

Connectez-vous pour commenter.

Plus de réponses (1)

Alan Stevens
Alan Stevens le 2 Jan 2021
Modifié(e) : Alan Stevens le 2 Jan 2021
Here's one way:
ix = (M(:,1)+M(:,2))==0;
M(ix,:) = [];
  1 commentaire
Darren Lim
Darren Lim le 2 Jan 2021
thanks Alan,
this works as well ! learnt a lot today!
Darren

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by