我有两个(n,1)单元格数组。这两个都包含每个单元格内的1x8个单元阵列。
我需要:
1)将第一个数组的第一个元素与第二个数组的每个元素组合
2)将第一个数组的第二个元素与第二个数组的每个元素组合,依此类推。
然后将它们存储在第三个单元格数组中,如下所示:
{ {f_array1} {s_array1}; {f_array1} {s_array2}; {f_arrayN} {s_array2}; {f_arrayM} {s_arrayM};
我尝试了一些像这样的循环:
for l = 1:u(1,1)
for m = 1:v(1,1)
A{l} = {e{l},f{m}};
end
end
但是只将一个元素与一个元素组合在一起。
任何sugestions?
答案 0 :(得分:2)
我会在单元格数组上使用repmat
将它们展开,然后简单地将它们连接起来。
f_array = {{{1} {1} {1} {1} {1} {1} {1} {1}},...
{{2} {2} {2} {2} {2} {2} {2} {2}},...
{{3} {3} {3} {3} {3} {3} {3} {3}}};
s_array = {{{4} {4} {4} {4} {4} {4} {4} {4}},...
{{5} {5} {5} {5} {5} {5} {5} {5}},...
{{6} {6} {6} {6} {6} {6} {6} {6}}};
f_expanded = repmat(f_array(:), numel(s_array), 1);
s_expanded = repmat(s_array(:), 1, numel(f_array)).';
output = num2cell(cat(2, f_expanded(:), s_expanded(:)), 2);