MATLAB Answers


how to run nested for loop efficiently on 3d matrix ?

Asked by Vinny
on 23 Jan 2019
Latest activity Commented on by Jan
on 23 Jan 2019
I have a big 3d matrix of size (2000,700,300) for which I want to run a nested for loop on .
the loop will be spatially only, meaning i goes 1:2000 and j 1:700 , pixel by pixel.
the thing is , it takes a very very long time.
is there a way to speed this up? I have tried parfor but it only makes it slower ...
i have a strong gpu if that helps.
also , I thought of using functions like nlfilter or blockproc , but they only take a picture of 1 or 3 dimensions as an argument.


vectorize your matrix
We really need a lot clearer an explanation. What is a "band"? What is the "window parameter"? Are you extracting some 3D sliding NxNxN neighborhood around each pixel? What calculations are done on the pixels within that neighborhood?
@Vinny: Please post your code. How can the readers suggest an improvement without seeing the current state?

Sign in to comment.

0 Answers