Generieren von Feldnamen aus Variablen
Dieses Beispiel zeigt, wie Sie den Namen eines Strukturfeldes zur Laufzeit aus einer Variablen oder einem Ausdruck ableiten. Die allgemeine Syntax lautet
structName.(dynamicExpression)
wobei dynamicExpression
eine Variable oder ein Ausdruck ist, der bei der Auswertung einen Zeichenfolgen-Skalar zurückgibt. Feldnamen, auf die Sie mit Ausdrücken verweisen, werden als „dynamic fieldnames“ oder manchmal auch als „dynamic field names“ (dynamische Feldnamen) bezeichnet.
Erstellen Sie zum Beispiel einen Feldnamen aus dem aktuellen Datum:
currentDate = datestr(now,'mmmdd');
myStruct.(currentDate) = [1,2,3]
Wenn das von Ihrem System gemeldete aktuelle Datum der 29. Februar ist, dann weist dieser Code einem Feld namens Feb29
Daten zu:
myStruct = Feb29: [1 2 3]
Der dynamische Feldname kann entweder einen Zeichenvektor oder einen Zeichenfolgen-Skalar zurückgeben. Sie können zum Beispiel das Feld Feb29
mit einfachen oder doppelten Anführungszeichen angeben.
myStruct.('Feb29')
ans = 1 2 3
myStruct.("Feb29")
ans = 1 2 3
Feldnamen müssen wie Variablennamen mit einem Buchstaben beginnen, können Buchstaben, Ziffern oder Unterstriche enthalten und unterscheiden Groß- und Kleinschreibung. Feldnamen dürfen keine Punkte enthalten. Zur Vermeidung möglicher Konflikte verwenden Sie als Feldnamen nicht die Namen bestehender Variablen oder Funktionen.
Siehe auch
struct
| fieldnames
| getfield
| setfield