我有一个嵌套的单元格数组A
,例如A
是1 x 6
个单元格。
A
的每个单元格都包含另一个单元格数组(例如A{1} = 1 x n
单元格)。
A{1}{1}
的每个单元格都包含其他单元格数组A{1}{1} = 1 x n
单元格
我想在一个独特的数组中列出单元格的内容。
A = cell(1,2);
A{1} = cell(1,2);
A{2} = cell(1,1);
A{1}{1} = [{1} {2}];
A{1}{2} = [{3} {4}];
A{2}{1} = [{5} {6}];
vec = [];
for i = 1 : size(A,2)
for j = 1 : size(A{1,i},2)
vec = [vec; cell2mat(A{1,i}{1,j}(:,2))];
end
end
vec = [2;4;6]
有没有办法避免for循环?
由于
答案 0 :(得分:1)
看这是否适合你 -
A_horzcat = horzcat(A{:})
out = cell2mat(vertcat(A_horzcat{:}))
vec = out(:,2)
另一种方法(单行!我更喜欢它) -
vec = arrayfun(@(x) x{1}{2}, [A{:}]).'