subsref
Lê por meio de uma estrutura de índices, a função por trás de A(i), A.f e A{i}.
Categoria: Programming > Classes
Sintaxe
B = subsref(A, S)
Retorna o valor selecionado pela cadeia de índices S.
Descrição
O interpretador transforma toda expressão com índice em uma chamada a subsref. Chamá-la diretamente permite indexar com uma cadeia montada em tempo de execução. Cada elemento de S é aplicado ao resultado do anterior, então substruct('()', {2}, '.', 'name') significa A(2).name.
Uma classe sobrecarrega subsref para controlar o que obj(i), obj.name ou obj{i} significam. Dentro da sobrecarga, builtin('subsref', obj, S) volta ao comportamento padrão.
Argumentos de entrada
A- O array, struct, cell array ou objeto a indexar.
S- Array de structs com os campos
type('()','{}'ou'.') esubs, em geral construído comsubstruct.
Argumentos de saída
B- O valor selecionado; com um índice
{}em cell array, a saída é o conteúdo.
Exemplo
Três tipos de índice
M = magic(4);
subsref(M, substruct('()', {2, ':'}))
S.a = [1 2 3];
subsref(S, substruct('.', 'a', '()', {2}))
c = {1, 'two', [3 4 5]};
subsref(c, substruct('{}', {3}, '()', {2}))
Saída
ans = 1×4
5 11 10 8
ans = 2
ans = 4