poster
2019-12-10, 20:48
我有一个具有这样的结构的元素列表(单元格数组):
mystruct = struct('x', 'foo', 'y', 'bar', 's', struct('text', 'Pickabo')); mylist = {mystruct }; 现在,我想为s.text =='Pickaboo'或其他预定义字符串的所有结构过滤mylist。在MATLAB中实现此目标的最佳方法是什么?显然,这对于数组很容易,但是对单元格执行此操作的最佳方法是什么?
回答:
您可以为此使用CELLFUN (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/cellfun.html) 。
hits = cellfun(@(x)strcmp(xstext,'Pickabo'),mylist); filteredList = mylist(hits); 但是,为什么要构造一个单元格?如果所有结构都具有相同的字段,则可以制作一个结构数组。为了获得成功,您可以使用ARRAYFUN (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/arrayfun.html) 。
更多&回答... (https://stackoverflow.com/questions/3462085)
mystruct = struct('x', 'foo', 'y', 'bar', 's', struct('text', 'Pickabo')); mylist = {mystruct }; 现在,我想为s.text =='Pickaboo'或其他预定义字符串的所有结构过滤mylist。在MATLAB中实现此目标的最佳方法是什么?显然,这对于数组很容易,但是对单元格执行此操作的最佳方法是什么?
回答:
您可以为此使用CELLFUN (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/cellfun.html) 。
hits = cellfun(@(x)strcmp(xstext,'Pickabo'),mylist); filteredList = mylist(hits); 但是,为什么要构造一个单元格?如果所有结构都具有相同的字段,则可以制作一个结构数组。为了获得成功,您可以使用ARRAYFUN (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/arrayfun.html) 。
更多&回答... (https://stackoverflow.com/questions/3462085)