繁体   English   中英

如何遍历具有不同数组大小的单元格?

[英]How to loop over cell with different array size?

以下代码应该以梳状输出第一个单元格的内容并访问由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}),'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 to size(aa,1)迭代1 to size(aa,1) 因此,请在您的代码中进行此修改-

for g=1:size(aa,1) 

它适用于外循环迭代器for j=1:numel(combs) ,因为combs是一1D单元数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM