我有三个相同大小的向量,pressure
,year
和month
。基本上我想创建一个压力值矩阵,它与使用for循环测量它们的月份和年份相对应。它应该是12x100
,以便显示为12个月的下降和100年从左到右。
除了创建初始结构之外,我只是不确定如何实际创建矩阵。到目前为止,我只能找到所有年份一个月的压力(低于我1月份的压力)。
A = zeros([12, 100]);
for some_years = 1900:2000
press = pressure(year == some_years & month == 1)
end
我只能打印所有年份1月的压力,但我想将所有年份的所有压力存储在一个矩阵中。如果有人可以提供帮助,将不胜感激。谢谢。
答案 0 :(得分:0)
从变量pressure
,year
和month
开始。我会做类似的事情:
T = length(pressure); % get number of time periods. I will assume vectors same length
if(length(pressure) ~= T || length(month) ~= T)
error('length mismatch');
end
min_year = min(year); % this year will correspond to index 1
max_year = max(year);
A = NaN(max_year - min_year + 1, 12); % I like to initialize to NaN (not a number)
% this way missing values are NaN
for i=1:T
year_index = year(i) - min_year + 1;
month_index = month(i); % Im assuming months run from 1 to 12
A(year_index, month_index) = pressure(i);
end
如果您的数据没有丢失,重复或无序的年月对(即数据格式如下):
year month pressure
1900 1 ...
1900 2 ...
... ... ...
1900 12 ...
1901 1 ...
... ... ...
然后你可以做一个班轮:
A = reshape(pressure, 12, max(year) - min(year) + 1)';