Optimizing a Sliding Window for Matrix Re-Assignment

I have a matrix, A, which is a massive NxM matrix where N is several millions and M is relatively small. and I would like to do an operation (xcorr() or std(), for example) on a window of this matrix, A(i:i+x,:), for i=1:N. However, using "for" loops ends up taking a lot of time since Matlab and "for" loops get along like me and my "ex" wife.
I'm trying to optimize it by creating a new matrix, B composed of the windows of A. For example, if
A=[1 2 3 4 5 6 8 9 10],
and the window size is x=3,
B= [1 2 3
2 3 4
3 4 5
...
8 9 10]
Is there any way to optimize this using only vector/matrix operations in order to speed up processing?

1 commentaire

You have post 3 times the same QUESTION, please do just once; any amendment might use comment to verify etc.
Put clear you task; note that and mostly vectorization handle it/assignment quickly (in fraction of minutes) Thanks

Connectez-vous pour commenter.

 Réponse acceptée

Thorsten
Thorsten le 29 Oct 2015
Modifié(e) : Thorsten le 29 Oct 2015
If you have the image processing toolbox, you can use:
stdA3 = colfilt(A, [3 1], 'sliding', @std);

Plus de réponses (0)

Catégories

En savoir plus sur Graphics Performance dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by