我有代码:
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仅等于最后一个打印的平均值。如果有人可以提供帮助,将不胜感激。谢谢。
答案 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
的结构。