How would I write this code without using loops?

4 ビュー (過去 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 ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by