Arrays 如何循环使用不同数组大小的单元格?
下面的代码应该输出combs中第一个单元格的内容,并访问bb定义的单元格的每一行。我这里的问题是它不会循环到第二和第三个单元格Arrays 如何循环使用不同数组大小的单元格?,arrays,matlab,loops,cell-array,Arrays,Matlab,Loops,Cell Array,下面的代码应该输出combs中第一个单元格的内容,并访问bb定义的单元格的每一行。我这里的问题是它不会循环到第二和第三个单元格 % input arrays A=[2 1 3]; B=[4 2 1 3 3]; C=[1 3]; D=[3 2 4 2 1 1]; E=[4 1 1]; % possible subsets of a set combs = arrayfun(@(x) nchoosek({A,B,C,D,E},x),3:numel({A,B,C,D,E}),'U
% input arrays
A=[2 1 3];
B=[4 2 1 3 3];
C=[1 3];
D=[3 2 4 2 1 1];
E=[4 1 1];
% possible subsets of a set
combs = arrayfun(@(x) nchoosek({A,B,C,D,E},x),3:numel({A,B,C,D,E}),'Uniform',0);
for j=1:numel(combs)
aa=combs{j}
for g=1:numel(aa)
bb=aa(g,:)
end
end
只对第一个单元格数组执行循环,然后出现此错误消息:索引超过了矩阵维度 simtt1中的错误(第18行) bb=aa(g,:)
我可以知道如何使第二个单元格和第三个单元格循环吗?由于迭代器
g
用于索引aa
的行,因此需要将其从1迭代到大小(aa,1)
。因此,在代码中进行此编辑-
for g=1:size(aa,1)
它适用于外部循环迭代器-对于j=1:numel(combs)
,因为combs
是一个1D
单元数组