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?

Foi útil?

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
scroll top