В этом примере показано, как вывести имя структурного поля во время исполнения из переменной или выражения. Общий синтаксис:
structName.(dynamicExpression)
где dynamicExpression - переменная или выражение, которое при вычислении возвращает вектор символов или, начиная с R2017b, строковый скаляр. Имена полей, которые вы ссылаетесь с выражениями, называются dynamic fieldnames, или иногда динамическими именами полей.
Для примера создайте имя поля с текущей даты:
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