В этом примере показано, как вывести имя структурного поля во время исполнения из переменной или выражения. Общий синтаксис:
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 3
myStruct.("Feb29")
ans = 1 2 3
Имена полей, как и имена переменных, должны начинаться с буквы, могут содержать буквы, цифры или символы подчеркивания и чувствительны к регистру. Чтобы избежать потенциальных конфликтов, не используйте имена существующих переменных или функций в качестве имен полей.
fieldnames
| getfield
| setfield
| struct