Effacer les filtres
Effacer les filtres

delate a specific number in an array and the number that have the index corresponding to the this number in an other array

1 vue (au cours des 30 derniers jours)
If I have two array A and B:
A=[0,0,3,4,5,6,7,8,9,0]
B=[10,9,8,7,6,5,4,3,2,1]
I want to delate the 0 in A and the number that have the index corresponding to the 0 in B obtaining:
A=[3,4,5,6,7,8,9]
B=[8,7,6,5,4,3,2]
To do that I would do a cycle with an if. I imagine is a common problem. Is there a simpler way to do it?
Thanks

Réponse acceptée

Jan
Jan le 22 Fév 2022
Modifié(e) : Jan le 22 Fév 2022
A=[0,0,3,4,5,6,7,8,9,0];
B=[10,9,8,7,6,5,4,3,2,1];
match = (A == 0);
A(match) = []
B(match) = []
Or the other way around:
match = (A ~= 0);
A = A(match)
B = B(match)

Plus de réponses (1)

David Hill
David Hill le 22 Fév 2022
A=[0,0,3,4,5,6,7,8,9,0];
B=[10,9,8,7,6,5,4,3,2,1];
idx=A==0;
A(idx)=[];
B(idx)=[];

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by