说我有一个有很多名字的大型结构(例如'a','b'等等)。给定一个名称,而不知道特定名称的指标,我想找到这个名字,类似的发现()命令,这样我可以写其他字段它在Matlab结构中找到字段
dat.name = 'a'
dat(2).name = 'b'
...
dat(26).name = 'z'
dat.name == 'a'
% MATLAB error
Error using ==
Too many input arguments.
说我有一个有很多名字的大型结构(例如'a','b'等等)。给定一个名称,而不知道特定名称的指标,我想找到这个名字,类似的发现()命令,这样我可以写其他字段它在Matlab结构中找到字段
dat.name = 'a'
dat(2).name = 'b'
...
dat(26).name = 'z'
dat.name == 'a'
% MATLAB error
Error using ==
Too many input arguments.
如果我undersand corretly,你想找到一个索引/索引结构数组中的哪个名称字段赋予了值?如果是的话,你可以做如下:
indexes = find(strcmp({dat(:).name}, 'a'))
如果所有的字符串是一个字符,你可以使用
>> find([dat.name] == 'b') %// concat into a single string (character vector)
ans =
2
如果字符串可以有任意数目的字符:
>> [temp{1:numel(dat)}] = deal(dat.name); %// build a cell array of strings
>> find(strcmp(temp,'b'))
ans =
2
要获取结构中的字段列表(作为字符串的单元数组),请使用:
fields(myStruct)
要访问其中字段的名称在变量举行(字符串)字段的值,使用:
myStruct.(fieldName)
这个工程还可以,但我更喜欢马尔辛推荐的一个衬垫。不过谢谢 – nagordon