这个命令如何使用" find"改为"如果" " for"循环

时间:2015-09-05 21:17:19

标签: matlab

确定1到50之间的所有整数,其中n3 - n2 + 40大于1000且n不能被3整除。然后解决问题: 1到50之间的任何整数是否完美(也就是说,它们是否等于它们的因子之和)?这本书给出了以下代码

n = 1:50;
       f = n.^3-n.^2+40;
       ii = find(f > 1000 & mod(n,3) ~= 0);
n(ii)

但我想仅使用" for"更改此代码和"如果"循环。有人可以帮我改变这段代码吗?

提前多多感谢。

1 个答案:

答案 0 :(得分:4)

n = 1:50;
f = n.^3-n.^2+40;
results = [];
for num = n //let's get into n
    if f(num) > 1000 & mod(num,3) ~= 0
        results(end+1) = num; //store the result into an array
    end
end

这很容易,但find看起来更合适。