How would I write this code without using loops?

4 Ansichten (letzte 30 Tage)
Susana Salinas
Susana Salinas am 5 Feb. 2020
Beantwortet: Alex Mcaulley am 5 Feb. 2020
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 Kommentar
Hiro Yoshino
Hiro Yoshino am 5 Feb. 2020
I don't get what you want to do.
Can you elaborate on it a bit more?

Melden Sie sich an, um zu kommentieren.

Antworten (2)

KSSV
KSSV am 5 Feb. 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) ;

Alex Mcaulley
Alex Mcaulley am 5 Feb. 2020
Another option:
N = 1000;
five = 2*5:5:N;
seven = 2*7:7:N;
res = setxor(five,seven)

Kategorien

Mehr zu Problem-Based Optimization Setup finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by