2009-11-29 6 views
8

Diciamo che ho una matrice 100x100, voglio dividerla in parti uguali di 10x10.Come dividere una matrice in parti uguali?

Il problema è che la matrice di input può essere di qualsiasi dimensione (ma sempre mod 10). Ho esaminato la funzione mat2cell ma non sembra funzionare per un numero dinamico di parti. O mi manca qualcosa?

+5

Se il vostro obiettivo è quello di elaborare in ultima analisi, questi sotto-matrici, forse si vuole considerare l'utilizzo del blocco funzioni di elaborazione nell'Image Processing Toolbox (es: ** blockproc **), fare riferimento a: http://www.mathworks.com/access/helpdesk/help/toolbox/images/f7-12726.html – Amro

risposta

12

Devi solo dire allo mat2cell esattamente come vuoi dividere la matrice. Se sei sicuro che sarà sempre un multiplo di 10 in entrambe le direzioni, allora è (abbastanza) semplice. Supponendo che X è la matrice che si desidera dividere, e si desidera che la matrice cellulare con conseguente Y:

Y = mat2cell(X, repmat(10,[1 size(X,1)/10]), repmat(10,[1 size(X,2)/10]));