Matlab でトレーサー フィールドの平均を計算したいのですが、フィールドを構成するセルのサイズが異なります。たとえば、私のトレーサー フィールドは次のとおりです。
T =
1 3 5 8
2 1 4 3
2 1 9 1
20 8 3 1
さらに 2 つのフィールドがdx
ありdy
、 を構成するセルのサイズを記述しT
ます。
dx =
1 1 2 3
1 1 2 3
1 1 2 3
1 1 2 3
と
dy =
3 3 3 3
3 3 3 3
2 2 2 2
1 1 1 1
したがって、直感的に、トレーサ フィールドの左下隅はの平均の計算に対して最小の寄与を持ち、右上隅は最大の寄与を持つはずであるdx
と教えてください。dy
T
T
私は最初に を試しmean(mean(T))
ましたが、これは明らかに などの左下隅の重要性を過大評価していT
ます。少し調査した後、次のようなものを使用して、重み付けを含め、徹底的に手動で平均を計算することにしました。
T_mean_i = sum(T*dx)./sum(dx)
と同様にdy
、y 方向のセル幅です。ただし、これを実装する方法がわかりません。
編集:これが私の質問の詳細です。
私のグリッドは 260*380 セルなので、size(dy) = size(dx) = 260-by-380
. トレーサーフィールドは、表面フラックスフィールドをsflux
、同様のサイズの塩分フィールドで割ることによって計算されsalt
ます。したがって、size(sflux) = size(salt) = 260-by-380-by-1000
時間次元の長さは1000
です。
セル幅フィールドの重み付けをsflux(:,:)./salt(:,:,ii)
含む平均を見つけたいdx
とdy
、各タイムステップでii
。(これを行うために for ループは使用しませんが、心配しないでください!!)
私は自分がしていることで正しい軌道に乗っていますか? それとも私はこれについて間違っていると思いますか?ご不明な点はお気軽にお尋ねください。
乾杯!