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