В этом примере показано, как вывести имя поля структуры во время выполнения из переменной или выражения. Общий синтаксис:
structName.(dynamicExpression)
где dynamicExpression - переменная или выражение, которое при вычислении возвращает вектор символов или, начиная с R2017b, строковый скаляр. Имена полей, на которые ссылаются выражения, называются динамическими именами полей или иногда динамическими именами полей.
Например, создайте имя поля с текущей даты:
currentDate = datestr(now,'mmmdd');
myStruct.(currentDate) = [1,2,3]Если текущей датой, указанной системой, является 29 февраля, то этот код присваивает данные полю с именем Feb29:
myStruct =
Feb29: [1 2 3]Динамическое имя поля может возвращать либо символьный вектор, либо строковый скаляр. Например, можно указать поле Feb29 используя одинарные или, начиная с R2017b, двойные кавычки.
myStruct.('Feb29')ans =
1 2 3myStruct.("Feb29")ans =
1 2 3Имена полей, как и имена переменных, должны начинаться с буквы, содержать буквы, цифры или символы подчеркивания и учитывать регистр. Чтобы избежать потенциальных конфликтов, не используйте имена существующих переменных или функций в качестве имен полей.
fieldnames | getfield | setfield | struct