isfield

Testa se um struct possui os nomes de campo informados.

Categoria: Language Fundamentals > Data Types

Sintaxe

tf = isfield(S, name)

Retorna true se S é um struct com um campo chamado name.

tf = isfield(S, names)

Verifica vários nomes de uma vez e retorna um lógico para cada nome.

Descrição

isfield compara os nomes exatamente, inclusive maiúsculas e minúsculas. Nunca dá erro quando o primeiro argumento não é um struct, apenas responde false, o que o torna seguro para checar campos opcionais de uma entrada desconhecida.

Um nome que não seja texto, dentro do cell array, também resulta em false naquela posição em vez de erro.

Argumentos de entrada

S
Valor a testar. Se não for um struct, o resultado é false.
name, names
Vetor de caracteres, string escalar ou cell array de nomes.

Argumentos de saída

tf
Escalar lógico para um nome, ou array lógico do mesmo tamanho do cell array names.

Exemplo

Verificando um e vários campos

s.a = 1;
s.b = 'x';
isfield(s, 'a')
isfield(s, {'a', 'c', 'b'})
isfield(5, 'a')
Saída
ans = logical
   1
ans = 1×3 logical array

   1   0   1
ans = logical
   0

Veja também

fieldnames rmfield setfield isstruct struct