mat2cell

Divide um array em um cell array de subblocos.

Categoria: Language Fundamentals > Data Types

Sintaxe

C = mat2cell(A, r)

Divide A ao longo das linhas em blocos de r(1), r(2), ... linhas, mantendo todas as colunas.

C = mat2cell(A, r, c)

Divide ao longo de linhas e colunas, dando um cell array numel(r) por numel(c).

Descrição

mat2cell é o inverso da concatenação: juntar com [C{:,:}] o desfaz. É o modo habitual de cortar uma matriz em pedaços desiguais. Quando as somas em r ou c não batem com o tamanho de A, a chamada gera erro.

Argumentos de entrada

A
Array de qualquer tipo.
r, c
Vetores com o número de linhas, e de colunas, de cada bloco. Suas somas devem ser iguais ao tamanho de A naquela dimensão.

Argumentos de saída

C
Cell array cujo elemento C{i,j} é um bloco de A.

Exemplo

Cortando uma matriz 4 por 4

A = magic(4);
C = mat2cell(A, [2 2], [3 1]);
C{1,1}
C{2,2}
Saída
ans = 2×3

    16     2     3
     5    11    10
ans = 2×1

    12
     1

Veja também

cell2mat num2cell cell reshape