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と教えてください。dyTT
私は最初に を試し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 ループは使用しませんが、心配しないでください!!)
私は自分がしていることで正しい軌道に乗っていますか? それとも私はこれについて間違っていると思いますか?ご不明な点はお気軽にお尋ねください。
乾杯!