找到一个数字的所有因素

时间:2014-05-14 11:17:05

标签: matlab loops if-statement disp

我是Matlab的新手,对于a,l和w的值,我需要找到数据集中l的所有值以及相应的w值。

a=10;
l=(0:10)
w=(0:10)
for l,d
       if a == l.*w
           disp(l) 
           disp(w)
       end
end

1 个答案:

答案 0 :(得分:2)

不确定你想做什么,但我认为你的代码可以如下:

a = 10;
l = 0:a; %// actually, it would suffice to check numbers up to floor(a/2)
ind = rem(a,l)==0; %// logical index that tells if remainder is zero or not
disp([l(ind); a./l(ind)])

结果:

     1     2     5    10
    10     5     2     1

您可以使用Matlab的factor函数更直接地执行此操作:

f = factor(a);
disp([f; a./f])

结果:

     2     5
     5     2