Comment diviser une matrice en parties égales?
Question
Disons que j'ai une matrice 100x100, je veux la diviser en parties égales de 10x10.
Le problème est que la matrice en entrée peut être de n'importe quelle taille (mais toujours en mod 10).
J'ai regardé la fonction mat2cell
mais cela ne semble pas fonctionner pour un nombre dynamique de pièces.
Ou est-ce que je manque quelque chose?
La solution
Il vous suffit d'indiquer à mat2cell
comment vous voulez que la matrice soit divisée. Si vous êtes sûr que cela va toujours être un multiple de 10 dans les deux sens, alors c'est (assez) simple. En supposant que X
soit la matrice que vous voulez diviser et que vous voulez le tableau de cellules résultant dans Y
:
Y = mat2cell (X, repmat (10, [1 taille (X, 1) / 10]), repmat (10, [1 taille (X, 2) / 10]));