0

両方にYEARとDOYに基づく観測値がある場合、2つの時系列データセットの観測値を要約するのが好きです。また、いずれかのデータセットの合計が0の場合は合計をスキップし、そのDOYで最大の観測値の合計のみを実行するのが好きです。

次に例を示します:data_1とdata_2。

data_1

% YEAR  DOY  OBS_1

1994    109 0.42
1994    110 0.73    
1994    111 0.69    
1994    113 0.8    
1994    114 0.43    
1994    115 0.75    
1994    123 0.6    
1994    127 0.2    
1994    131 0.44    
1994    131 0.43    
1994    131 0.63    
1994    132 0.99    
1994    132 0.51    
1994    133 0.71    
1994    133 0.99    
1994    134 0.65    
1994    134 0.69    
1994    134 0.97    
1994    134 0.03    
1994    134 0    
1994    134 0    
1994    135 0.68    
1994    135 0.72    
1994    136 1.22    
1994    136 0    
1994    136 0    
1994    136 1.28    
1994    136 1.34

data_2:

% YEAR  DOY  OBS_2    
1994    110 0.92    
1994    111 0.34    
1994    113 0.42    
1994    114 0.37    
1994    115 0.38    
1994    122 0.22    
1994    127 0.32    
1994    131 0.34   
1994    131 0.2    
1994    132 0.51    
1994    132 0.43
1994    132 0.4    
1994    133 0.4    
1994    134 0.32    
1994    134 0.39    
1994    135 0.35    
1994    135 0.38    
1994    135 0.34    
1994    135 1.83    
1994    135 0.22    
1994    135 0.36    
1994    135 0.39    
1994    135 0.24    
1994    135 0.39    
1994    136 0.42    
1994    136 0.29    
1994    136 0.3    
1994    136 0.4    
1994    136 0.54    
1994    136 0.4
4

1 に答える 1

1

これが最初の試みです:

%# maximum day of year
sz = max(max(data_1(:,2)),max(data_2(:,2)));
doy = (1:sz)';

%# get max value for each DOY in each dataset
v1 = accumarray(data_1(:,2), data_1(:,3), [sz 1], @max);
v2 = accumarray(data_2(:,2), data_2(:,3), [sz 1], @max);

%# compute the sum
v = v1 + v2;

%# keep entries where none of the values were zeros
idx = (v1~=0 & v2~=0);
v = [doy(idx(:)) v(idx(:))];

結果:

>> v
v =
          110         1.65
          111         1.03
          113         1.22
          114          0.8
          115         1.13
          127         0.52
          131         0.97
          132          1.5
          133         1.39
          134         1.36
          135         2.55
          136         1.88

yearすべてのデータにまたがっているので、フィールドを考慮しませんでした1994...

于 2012-06-11T17:49:01.747 に答える