Problem with the mean of index

2 ビュー (過去 30 日間)
Sophia
Sophia 2016 年 3 月 30 日
編集済み: Sophia 2016 年 3 月 30 日
% tr(i,j,ni) is 361*361*432
t_r = zeros(361,361,35);
ind=10:16;
for t=1:(ni/12)-1;
if t<=34
* *mean_tr* = mean(tr(i,j,ind));*
t_r(i,j,t) = mean_tr;
ind = ind + 12;
else
end
end
mean_winter_sid = mean(t_r,3);
  4 件のコメント
Star Strider
Star Strider 2016 年 3 月 30 日
Could it possibly be that:
mean(tr(i,j,ind))
are zero?
For example:
q = mean([-3:3])
q =
0.0000e+000
Sophia
Sophia 2016 年 3 月 30 日
I tried
ind = 10:16;
mean_tr = mean(tr(i,j,ind));
*It is showing zeros, but this should not be the case*

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

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 3 月 30 日
You can calculate the mean without a for loop
A=rand(361,361,432);
mina=mean(A(:)) % the mean off all the matrix
min1=mean(A,1); % dimension 1
min2=mean(A,2); % dimension 2
min3=mean(A,3); % dimension 3
  4 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2016 年 3 月 30 日
use
a = tr(1:361,1:361,ind);
Sophia
Sophia 2016 年 3 月 30 日
編集済み: Sophia 2016 年 3 月 30 日
Its working , thanks Azzi
ind=10:16;
for t=1:(ni/12)-1;
if t<=34
a = tr(1:361,1:361,ind);
mean_tr = mean(a,3);
t_r(:,:,t) = mean_tr;
ind = ind + 12;
else
end
end

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

その他の回答 (1 件)

Chad Greene
Chad Greene 2016 年 3 月 30 日
Do the values of indices i and j ever change?
Can you describe in words what you are trying to do? I have a feeling it can be done much more simply and efficiently without loops.
  1 件のコメント
Sophia
Sophia 2016 年 3 月 30 日
I have a 361*361*432 matrix that describes the 361*361 size monthly images for 36 years.. So i have 432 matrices, i am trying to find the average over just the winter months, say Oct to April (10:16)

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

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by