Problem with the mean of index

2 views (last 30 days)
Sophia
Sophia on 30 Mar 2016
Edited: Sophia on 30 Mar 2016
% 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 Comments
Star Strider
Star Strider on 30 Mar 2016
Could it possibly be that:
mean(tr(i,j,ind))
are zero?
For example:
q = mean([-3:3])
q =
0.0000e+000
Sophia
Sophia on 30 Mar 2016
I tried
ind = 10:16;
mean_tr = mean(tr(i,j,ind));
*It is showing zeros, but this should not be the case*

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 30 Mar 2016
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 Comments
Sophia
Sophia on 30 Mar 2016
Edited: Sophia on 30 Mar 2016
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

Sign in to comment.

More Answers (1)

Chad Greene
Chad Greene on 30 Mar 2016
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 Comment
Sophia
Sophia on 30 Mar 2016
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)

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!