我有一系列结构。
我正在尝试从数组中选择几条符合某些条件的记录。
我知道有这个选项:(例如A
带有字段的数组f1
):
A([A.f1]==5)
这将返回所有具有f1 = 5
.
但我想在一个循环中为几个不同的领域做这件事。我将字段名称保存在单元格数组中,但我不知道如何对动态字段名称执行相同操作。
我知道有“getfield”功能,但它只从单个结构中选择一个字段。
有没有办法做到这一点?
谢谢!
要动态访问结构的字段:
% Create example structure
s.a = 1;
s.b = 2;
% Suppose you retrieve the fieldnames (or hardcode them fnames = {'a','b'})
fnames = fieldnames(s);
您可以检索例如第二个:
s.(fnames{2})
在一个循环中
for f = 1:numel(fnames)
s.(fnames{f})
end
在你的情况下:
A([A.(fnames{ii})] == n)
此代码将遍历您的动态名称的前 5 条记录
for i=1:5
eval(['A([A.' cell_array{i} ']==5)'])
end