How would I write this code without using loops?

x57a= [];
for i= 1:1000
if rem(i,5) ==0 || rem(i,7) ==0
if rem(i,5)==0 && rem(i,7) ==0
continue;
end
x57a = [x57a, i];
end
end
I wrote this for loop that gives me the multiples of 5 and 7 (but not both) in 1 to 1000, but I am having trouble rewriting it using indexing or even the find function. I just don't want to use loops

1 commentaire

I don't get what you want to do.
Can you elaborate on it a bit more?

Connectez-vous pour commenter.

Réponses (2)

KSSV
KSSV le 5 Fév 2020
i = 1:1000 ;
O = zeros(size(i)) ;
idx1 = rem(i,5)==O | rem(i,7)==O ;
idx2 = rem(i,5)==O & rem(i,7)==O ;
iwant = find(idx1 ~= idx2) ;
Another option:
N = 1000;
five = 2*5:5:N;
seven = 2*7:7:N;
res = setxor(five,seven)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by