我有一个(1*2结构(。如何搜索字段名称?例如,我想选择字段名称"loadPc"来获得第二行中的值。还是我应该用循环来做?什么更好?
是否也可以用新值覆盖(替换(某些值?非常感谢。在此处输入图像描述
提前感谢
您可以使用fieldnames函数来获取字段的名称,然后提取数据。
提取数据时,可以在[]
中包含指令的右侧部分:这允许将数据存储在阵列中
作为替代方案,您可以直接指定字段的名称
一种可能的方法是:
% Define the struct
s(1).field_a=1
s(1).field_b=2
s(1).field_c=3
s(2).field_a=10
s(2).field_b=20
s(2).field_c=30
% Get the field names
str_fields=fieldnames(s)
% Extract the data form the fields
%
% First method
%
% Data from field "field_a"
the_data_1=filed_a_data=[s(:).(str_fields{1})]
% Data from field "field_a"
%
% Second method
%
the_data_2=filed_a_data=[s(:).field_c]
声明中的通知:
the_data_1=filed_a_data=[s(:).(str_fields{1})]
s(:)
允许访问结构阵列的所有元素
代码中:
- 定义一个示例(1 x 2(结构
- 第一种方法:从单元格数组
str_field
中选择字段名称,并将数据存储在数组the_data_1
中 - 使用第二种方法:直接写入字段的名称,并将数据存储在数组
the_data_2
中
输出:
the_data_1 =
1 10
the_data_2 =
3 30