Если я правильно понимаю, для каждой структуры массива, field1
будет содержать вектор, и вы хотите получить длину каждого из этих векторов. Например
array = repmat(struct('field1',0), [2 3]);
for i=1:size(array,1)
for j=1:size(array,2)
array(i,j).field1 = rand(randi([1 10]),1);
end
end
Если это так, вот два способа получить длину:
>> len = cellfun(@length, {array.field1})
len =
3 8 9 4 1 7
>> len = arrayfun(@(s) length(s.field1), array)
len =
3 9 1
8 4 7
EDIT:
Оказывается, field1
содержит другую вложенную структуру, и вы хотите получить количество полей в этой вложенной структуре для каждого элемента массива. Пример
array = repmat(struct('field1',0),[1 2]);
array(1,1).field1.a = 1;
array(1,1).field1.b = 1;
array(1,2).field1.c = 2;
len = arrayfun(@(s) length(fieldnames(s.field1)), array)