Matlab 结构:如何将连接的字符串作为字段传递给结构?

Matlab Structures: How can I pass a concatenated string as a field to a structure?

我有一个包含有关元素 01 到 04 的信息的结构 XYZ。我需要根据提供的实例(“inst”)编号读取或写入元素。 Matlab 给出错误“引用不存在的字段 'strcat' 或 'element'。我理解为什么 Matlab 给出错误。试图弄清楚如何传递字段信息以读取或写入元素?

% XYZ structure
XYZ.Element_1 = 1;
XYZ.Element_2 = 5;
XYZ.Element_3 = 6;
XYZ.Element_4 = 7;

%Instance number
inst='1'

%Concatenate instance information to obtain the field
element=strcat('Element_', inst);

%Read the value of Element_1
var1=XYZ.strcat('Element_', inst);
var2=XYZ.element;

要访问不同的字段,您可以在要访问的 Field_Name 周围使用 ()

% XYZ structure
XYZ.Element_1 = 1;
XYZ.Element_2 = 5;
XYZ.Element_3 = 6;
XYZ.Element_4 = 7;

inst = '1';
Field_Name = strcat('Element_', inst);
var1 = XYZ.(Field_Name);
    
inst = '2';
Field_Name = strcat('Element_', inst);
var2 = XYZ.(Field_Name);