How would I write this code without using loops?

2 ビュー (過去 30 日間)
Susana Salinas
Susana Salinas 2020 年 2 月 5 日
回答済み: Alex Mcaulley 2020 年 2 月 5 日
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 件のコメント
Hiro Yoshino
Hiro Yoshino 2020 年 2 月 5 日
I don't get what you want to do.
Can you elaborate on it a bit more?

サインインしてコメントする。

回答 (2 件)

KSSV
KSSV 2020 年 2 月 5 日
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 2020 年 2 月 5 日
Another option:
N = 1000;
five = 2*5:5:N;
seven = 2*7:7:N;
res = setxor(five,seven)

カテゴリ

Help Center および File ExchangeProblem-Based Optimization Setup についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by