0

嗨,我现在正在写一个 matlab 代码。我正在尝试将列表中的值与数字 10 进行比较,如果该值小于 10,则在总数中添加 1。但是我似乎无法正确获取代码。到目前为止我的代码

tot = 0
for i=1:n
 if(x(i)<10)
  tot = +1
 else
  y=0;
 end
end

tot 

我得到的值 tot 总是 = 1 并且永远不会增加?有人可以帮助编辑此问题,或者如果不提供问题的解决方案吗?

4

2 回答 2

3

我同意上面提到的答案,应该避免 for 循环。可以有更快的解决方案。因为,他只对计数感兴趣,而不是数字的价值,所以没有必要索引东西。

鉴于:

 a = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]

计算小于 10 的数字(您可以在此处输入任何数字)

answer = sum(a<10);

祝你好运!

于 2013-10-19T09:37:38.563 回答
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))

不需要或不需要循环!

于 2013-10-19T07:43:51.267 回答