Сгенерируйте имена полей из переменных

В этом примере показано, как вывести имя структурного поля во время исполнения из переменной или выражения. Общий синтаксис:

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

Имена полей, как и имена переменных, должны начинаться с буквы, могут содержать буквы, цифры или символы подчеркивания и чувствительны к регистру. Чтобы избежать потенциальных конфликтов, не используйте имена существующих переменных или функций в качестве имен полей.

См. также

| | |

Похожие темы