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 个评论

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.

请先登录,再进行评论。

 采纳的回答

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 个评论

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

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 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!

Translated by