如何使用循环将值存储到向量中?

时间:2016-05-16 12:36:38

标签: matlab

我有代码:

for years = 1900:2000
  temp = T(year == years & month == 1);
  mt = mean(temp);
  fprintf('The mean of January through 1900-2000 is %2.3f\n', mt)
end 

这打印了Jan到那些年的平均温度。

但我想将这些值存储在一个向量中,当我尝试在for循环中添加mt = [mt]时,它只给出了我的最后一个平均值,同样在我的工作空间中mt仅等于最后一个打印的平均值。如果有人可以提供帮助,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

你要做的是

mt = [mt, mean(temp)]

哪个会奏效。然而,这是一种低效的MATLAB方法,因为它在循环中增长矩阵。

更好的方法是预先分配矩阵,这样

years = 1900:2000;
mt = zeros(numel(years),1)
for yearnum = 1:numel(years);
    temp = T(year == years(yearnum) & month == 1);
    mt(yearnum) = mean(temp);
end
fprintf('The mean of January through 1900-2000 is %2.3f\n', mean(mt))

另请注意,我已将fprintf行排除在外。

在MATLAB中更好的方法是使用矢量化方法而不是循环,但这取决于矩阵T的结构。