A for loop that finds multiples of certain numbers in a given range
조회 수: 10 (최근 30일)
이전 댓글 표시
I am trying to create a for loop that finds all values in the range [1,100] that are also multiple of 3 or 5 and save these in a row vector labeled M1. It was suggested that I use mod()/rem() functions. I have been able to do this without a for loop, but when I try to use the for loop the answer is not in row vector form and there are a lot of blank answers.
x = [1:100];
i=1;
for k = 1:length(x)
i=k(mod(k,3)==0)
i=k(mod(k,5)==0)
end
M1=i
댓글 수: 0
채택된 답변
David Hill
2022년 3월 7일
편집: Image Analyst
2022년 3월 14일
y=[];
for k = 1:100
if mod(k,3)==0||mod(k,5)==5
y=[y,k];
end
end
y
댓글 수: 2
Garrett Viton
2022년 3월 14일
This is not giving the multiples of 5 like 10, 20, 25, etc. What's the reasoning on this?
Image Analyst
2022년 3월 14일
@Garrett Viton, it's because there is an error in the code. See my answer below.
추가 답변 (1개)
Image Analyst
2022년 3월 14일
Try this:
% Construct a list of values to check. Call it x.
x = 1 : 100;
% Initialize our output row vector to null. Then we'll fill it up.
M1=[];
% Now check all the values in x to see if they are a multiple of 3 or 5.
for k = 1 : length(x)
% Get this value of x.
this_x = x(k);
% Check the value to see if it's a multiple of 3 or 5.
if (mod(this_x, 3) == 0) || (mod(this_x, 5) == 0)
% If we get here, this_x is a multiple of 3 or 5.
% Store the value in our output vector.
M1 = [M1, this_x];
end
end
M1
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!