フィルターのクリア

Why do I need to divide by 12 in the second line to make it equal to line 1?

1 回表示 (過去 30 日間)
year_avg = mean(sum(sum(sum(dl,1),2),3),4);
year_avg= mean(sum(dl(:)))/12;
  4 件のコメント
Basil C.
Basil C. 2018 年 7 月 4 日
If I'm not wrong you don't need to use mean because the output of
(sum(sum(sum(dl,1),2),3),4) and
sum(dl(:))
is a single number and not a vector.
Nesha Wright
Nesha Wright 2018 年 7 月 4 日
If I remove the mean, I get a 4-D single array, however, I am still not sure what the difference between my first two lines in the original question is (regarding the 12).

サインインしてコメントする。

採用された回答

Image Analyst
Image Analyst 2018 年 7 月 4 日
dl is a 4-D array. Think of it as a 3-D volumetric chunk of data, and there are 12 of them, like 12 blocks.
Now, what exactly do you want to do with those 12 blocks?
Average each block so that you have 12 averages - an average over all elements in each block?
Or an average over all possible elements over all 12 blocks so that you have only one average? If so, try this:
year_avg = mean(dl(:));
  7 件のコメント
Nesha Wright
Nesha Wright 2018 年 7 月 5 日
The file is too large to attach, it is monthly emissions data for multiple years, dimensions are lat, long, sector (where the emissions are from) and time (monthly). Because the time is monthly that is why in line 2 I divide by 12 however I am not sure why I don't need to do so in line 1.
Image Analyst
Image Analyst 2018 年 7 月 6 日
And you can't read it in and save just a few years worth of data in a new .mat file??? OK, whatever. Failing having some data to work with all I can say is that the code should work.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by