A for loop that finds multiples of certain numbers in a given range
11 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Caroline F
il 7 Mar 2022
Commentato: Image Analyst
il 14 Mar 2022
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 Commenti
Risposta accettata
David Hill
il 7 Mar 2022
Modificato: Image Analyst
il 14 Mar 2022
y=[];
for k = 1:100
if mod(k,3)==0||mod(k,5)==5
y=[y,k];
end
end
y
2 Commenti
Garrett Viton
il 14 Mar 2022
This is not giving the multiples of 5 like 10, 20, 25, etc. What's the reasoning on this?
Image Analyst
il 14 Mar 2022
@Garrett Viton, it's because there is an error in the code. See my answer below.
Più risposte (1)
Image Analyst
il 14 Mar 2022
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 Commenti
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!