How can I remove elements divisible by 3,4, and 5 in a vector?

10 visualizzazioni (ultimi 30 giorni)
I've created a vector x = 1:50 but I'm having trouble in how I can remove elements divisible by 3, 4, and 5, and then display it in a new vector. Thank you!

Risposta accettata

Sean de Wolski
Sean de Wolski il 21 Set 2016
x = 1:50;
x([3:3:50,4:4:50,5:5:50]) = []
  2 Commenti
James Tursa
James Tursa il 21 Set 2016
@Nathalie: Note that this solution deletes the elements whose "indexes" are divisible by 3, 4, 5. In your particular example, since the indexes match up with the values one-for-one, this gives the same solution as below.

Accedi per commentare.

Più risposte (3)

Andrei Bobrov
Andrei Bobrov il 21 Set 2016
x = (1:50)';
out = x(all(bsxfun(@rem,x,3:5),2));
  2 Commenti
James Tursa
James Tursa il 21 Set 2016
@Nathalie: Note that this solution deletes the elements whose "values" are divisible by 3, 4, 5. In your particular example, since the indexes match up with the values one-for-one, this gives the same solution as above.

Accedi per commentare.


George
George il 21 Set 2016
You can do this using mod().

karim karim
karim karim il 10 Gen 2020
This is a general solution :
x=input(' x = ');
i=1;
while i<= length(x)
if mod(x(i),3)==0 || mod(x(i),4)==0 || mod(x(i),5)==0
x(i)=[];
else i=i+1;
end
end
disp(x);

Community Treasure Hunt

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

Start Hunting!

Translated by