finding median along the third dimension of a 3d array

6 views (last 30 days)
Hi everyone, I have the following code to find the median of every cell along the 3rd dimension. My program works for column 3 but not for other two. Can someone tell me why? My code is
m=1;
for i=1:size(tempBeforeDelam,1)
n=1;
for j=1:size(tempBeforeDelam,2)
if(abs((tempBeforeDelam(i,j,1)-tempBeforeDelam(i,j,2)))< 1 && ...
abs((tempBeforeDelam(i,j,2)-tempBeforeDelam(i,j,3))) < 1 && ...
abs((tempBeforeDelam(i,j,3)-tempBeforeDelam(i,j,4))) < 1 && ...
abs((tempBeforeDelam(i,j,4)-tempBeforeDelam(i,j,5))) < 1 && ...
abs((tempBeforeDelam(i,j,5)-tempBeforeDelam(i,j,1))) < 1)
for k=1:5
beforeDelam(m,n)= nanmedian(tempBeforeDelam(i,j,k),3);
n=n+1;
beforeDelam(m,n)= nanmedian(tempBeforeDelam(i,j,k),3);
n=n+1;
beforeDelam(m,n)= nanmedian(tempBeforeDelam(i,j,1:5),3);
m=m+1;
end
end
end
end
  5 Comments
Snehalatha
Snehalatha on 20 Jun 2015
Hi Walter, i have a question. How can i modify the above if statement so that the loop goes on if the value is less than 1 or a nan?? looking forward to your help.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 10 Jun 2015
nanmedian(tempBeforeDelam(i,j,k),3) with fixed i, j, k, is taking nanmedian() of a scalar. It doesn't matter which dimension is used, the result is going to be the scalar.
nanmedian(tempBeforeDelam(i,j,1:5),3) should work for the third dimension.
For nanmedian to be useful on any particular dimension, there must be multiple elements along that dimension. For example,
nanmedian(tempBeforeDelam(i,:,k),2)

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices 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!