isfield

Определите, является ли введенный полем массива структур

Синтаксис

tf = isfield (S, имя поля)
tf = isfield (S, C)

Описание

tf = isfield(S,fieldname) исследует структуру S, чтобы видеть, включает ли это поле, заданное fieldname. Вывод tf установлен в логический 1 (true), если S содержит поле или логический 0 (false) если нет. Если S не является массивом структур, isfield возвращает false. Входной параметр fieldname может быть вектором символа или скаляром строки.

tf = isfield(S,C) исследует структуру S на несколько имен полей, как задано в C и возвращает массив логических значений, чтобы указать, какое из этих полей является частью структуры. Элементы выходного массива, tf установлен в логическую единицу (true), если соответствующий элемент C содержит имя поля, которое принадлежит, чтобы структурировать S. В противном случае логический ноль (false) возвращен в том элементе. Другими словами, если структура, S содержит поле, заданное в C(m,n), isfield, возвращает логическую единицу (true) в tf(m,n). Входной параметр C может быть массивом ячеек из символьных векторов или массивом строк.

Примечание

isfield возвращает false, если входной параметр field или fieldnames пуст.

Примеры

Пример 1 - единственный синтаксис имени поля

Учитывая следующую структуру MATLAB®,

patient.name = 'John Doe';
patient.billing = 127.00;
patient.test = [79 75 73; 180 178 177.5; 220 210 205];

isfield идентифицирует billing как поле той структуры.

isfield(patient,'billing')
ans =
     1

Пример 2 - несколько синтаксис имени поля

Проверьте структуру S на любые из четырех возможных имен полей. Только первое найдено, таким образом, первый элемент возвращаемого значения установлен в true:

S = struct('one', 1, 'two', 2);

fields = isfield(S, {'two', 'pi', 'One', 3.14})
fields =
     1     0     0     0

Расширенные возможности

Представлено до R2006a

Была ли эта тема полезной?