1

我正在尝试编写一个搜索列表并匹配一个术语的代码。在这种情况下,我试图做的是获取该方法的距离和时间值并将它们添加到单独的列表中。附上我的代码

distanceb = [];
timeb = [];
for i =1:n
 if strcmp(method(i),'bus') == 1
  distanceb = (x(i))
  timeb = time(i)
 end
end    

我可以获得 x 和 time 的值,但代码似乎每次添加到列表时都会覆盖,并且我只得到 distanceb 和 timeb 的一个答案。有没有办法在不覆盖先前值的情况下将值添加到列表中?

4

1 回答 1

3

您将新值分配给标量distancebtimeb不是列表/向量。
您需要附加值:

 distanceb(end+1) = x(i);
 timeb(end+1) = time(i);

几点说明:

  1. 如果您知道最终大小distanceb并且timeb最好预先分配它们并且不要在循环内增加它们。

  2. 在 Matlab中最好不要i用作变量名

于 2013-10-20T07:37:17.517 回答