您好我正在写一个matlab代码。我试图将列表中的值与数字10进行比较,如果值小于10,则将总数加1。不过,我似乎无法得到正确的代码。我的代码到目前为止MATLAB如果价值低于
tot = 0
for i=1:n
if(x(i)<10)
tot = +1
else
y=0;
end
end
tot
我得到的值总是= 1,永远不会增加?有人可以帮助编辑这个问题,或者如果不能解决问题吗?
您好我正在写一个matlab代码。我试图将列表中的值与数字10进行比较,如果值小于10,则将总数加1。不过,我似乎无法得到正确的代码。我的代码到目前为止MATLAB如果价值低于
tot = 0
for i=1:n
if(x(i)<10)
tot = +1
else
y=0;
end
end
tot
我得到的值总是= 1,永远不会增加?有人可以帮助编辑这个问题,或者如果不能解决问题吗?
在像MATLAB和R这样的语言中,你真的不应该使用for
这样的循环,甚至作为练习。每个变量可以是一个向量,并且操作可以一次发生在整个向量上,而不是逐个元素。
考虑:
x = [ 1 2 3 4 11 12 13 14 15 16 ]
要生成所有x
小于10的名单,你会说:
x(x<10)
如此算来:
total = length(x(x<10))
没有循环需要或通缉!
我同意上面提到的答案,应该避免for循环。可以有一个更快的解决方案。因为,他只是对计数感兴趣,而不是数字的价值,所以没有必要重新编制索引。
考虑:
a = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]
计算数小于10(你可以在这里将任意数量)
answer = sum(a<10);
祝你好运!
'tot = tot + 1'是正确的形式。 't = + 1'只是将't'设置为'1'而不会增加它。 – Sadjad
@Sadjad我看到所以不加tot + 1 t如果值小于10,每次只取值1? – user2423678
是的,就是这样。 – Sadjad