structfun
Aplica uma função a cada campo de um struct escalar.
Categoria: Language Fundamentals > Data Types
Sintaxe
A = structfun(func, S)
Chama func sobre o valor de cada campo e reúne os resultados em um vetor coluna.
B = structfun(func, S, 'UniformOutput', false)
Retorna um struct com os mesmos nomes de campos contendo os resultados.
Descrição
structfun é o equivalente de cellfun e arrayfun para structs. É útil para resumos sobre um conjunto de valores nomeados, como structfun(@numel, s) para o tamanho de cada campo.
Quando a função retorna resultados não escalares (strings, vetores), defina 'UniformOutput' como false; caso contrário ocorre um erro.
Argumentos de entrada
func- Handle de função que recebe o valor de um campo.
S- Struct escalar.
'UniformOutput'true(padrão) exige que cada resultado seja escalar;falsepermite qualquer resultado e retorna um struct.
Argumentos de saída
A- Vetor coluna com um elemento por campo, na ordem dos campos.
Exemplo
Resultado em coluna e em struct
s.a = 1; s.b = 4; s.c = 9;
structfun(@sqrt, s)
r = structfun(@(v) v*2, s, 'UniformOutput', false)
Saída
ans = 3×1
1
2
3
r = struct with fields:
a: 2
b: 8
c: 18