В этом есть хитрость, о которой некоторые даже не подозревают: вы можете передать несколько аргументов в cellfun следующим образом:
cellfun(@(obj,attr) get(obj,attr), {obj1,obj2},{attr1,attr2},'uni',0)
, если вы хотите получить один атрибут Cellarray (вместо предоставления атрибута для каждый объект в подвале), тогда вы можете просто использовать эту
cellfun(@(x) getattr(x,attr),obj,'uni',0)
, помещенную в анонимную функцию для удобства:
get_attr = @(obj,attr) cellfun(@(x) getattr(x,attr),obj,'uni',0)
%use:
get_attr(obj_in_cellarray,'myattribute')
%returns cell array of object attributes
Я не запускал ни одну из этих функций, так как вы не не приведу ни одного примера данных / кода. Пожалуйста, проверьте и обратная связь.