Come dividere una matrice in parti uguali?
Domanda
Diciamo che ho una matrice 100x100, voglio dividerla in parti uguali di 10x10.
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.
Oppure mi sfugge qualcosa?
Soluzione
Devi solo dire a 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
sia la matrice che si desidera dividere e si desidera l'array di celle risultante in Y
:
Y = mat2cell (X, repmat (10, [1 size (X, 1) / 10]), repmat (10, [1 size (X, 2) / 10]));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow