Filter löschen
Filter löschen

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

1 Ansicht (letzte 30 Tage)
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

Akzeptierte Antwort

Jan
Jan am 22 Feb. 2022
Bearbeitet: Jan am 22 Feb. 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)

Weitere Antworten (1)

David Hill
David Hill am 22 Feb. 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)=[];

Tags

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by