While loop into vector

12 visualizaciones (últimos 30 días)
St.John Rowell
St.John Rowell el 11 de Abr. de 2020
Comentada: St.John Rowell el 14 de Abr. de 2020
I'm trying to make this function output into a vector on every loop so it stores the variable numbers into the vector but i'm struggling to do so.
function f = primefactors(m)
p=[]
for x = 2;
while m > 1
if mod (m,x) == 0
m=m/x
fprintf('The Prime factors are: %d\n', x)
else
x = x+1;
fprintf(' ')
end
end
end
  1 comentario
Stephen23
Stephen23 el 11 de Abr. de 2020
Storing the output is easy, just use indexing to store the values in the output variable, e.g.:
function p = ...
p = []
...
p(end+1) = x;
...
Note that
  • m=m/x is unlikely to be useful.
  • the for loop as you have written it is superfluous and can be replaced with x=2;
  • you need to think about the while loop condition (e.g. consider what happens if m is any prime number), or use a for loop.

Iniciar sesión para comentar.

Respuesta aceptada

madhan ravi
madhan ravi el 11 de Abr. de 2020
Example for storing values in a loop:
N = 10;
X = zeros(1,N);
k = 1;
while k <= N
X(k) = k;
k = k + 1;
end
  1 comentario
St.John Rowell
St.John Rowell el 14 de Abr. de 2020
I've tried moving my code around thank you. Does this mean k = the vector of outputs?
function f = primefactors(m)
k=zeros(1,m);
x = 1;
while x <= m
if mod (m,x) == 0
m=m/x;
k(x) = x;
x=x+1;
fprintf('The Prime factors are: %d\n', x)
end
end
end

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by