Como dividir uma matriz em partes iguais?
Pergunta
Vamos dizer que tenho uma matriz de 100x100, quero dividi-lo em partes iguais de 10x10.
O problema é que a matriz de entrada pode ser de qualquer tamanho (mas sempre mod 10).
Olhei para a função mat2cell
mas não parece trabalho para um número dinâmico de peças.
Ou eu estou esquecendo de alguma coisa?
Solução
Você apenas tem que dizer mat2cell
exatamente como você quer a matriz dividido. Se você é positivo que ele está sempre vai ser um múltiplo de 10 em ambos os sentidos, então é (bastante) simples. Assumindo que X
é a matriz que você quer dividir, e você quer que a matriz celular resultando em Y
:
Y = mat2cell(X, repmat(10,[1 size(X,1)/10]), repmat(10,[1 size(X,2)/10]));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow