2009-11-29 40 views
8

Digamos que tengo una matriz de 100x100, quiero dividirla en partes iguales de 10x10.¿Cómo dividir una matriz en partes iguales?

El problema es que la matriz de entrada puede ser de cualquier tamaño (pero siempre mod 10). Miré la función mat2cell pero parece que no funciona para un número dinámico de partes. ¿O me estoy perdiendo algo?

+5

Si su objetivo es procesar en última instancia, estos sub-matrices, tal vez desee considerar la posibilidad de utilizar el bloque funciones de procesamiento en la Caja de herramientas de procesamiento de imágenes (por ejemplo: ** blockproc **), consulte: http://www.mathworks.com/access/helpdesk/help/toolbox/images/f7-12726.html – Amro

Respuesta

12

Solo tienes que decir mat2cell exactamente como quieres dividir la matriz. Si está seguro de que siempre va a ser un múltiplo de 10 en ambas direcciones, entonces es (bastante) simple. Suponiendo que X es la matriz que desea dividir, y desea que la serie de células que resulta en Y:

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

Cuestiones relacionadas