通过Struct MATLAB迭代

时间:2016-12-15 03:12:38

标签: matlab struct matlab-struct

以下是我到目前为止的情况。我需要遍历rxnsBothKaletaS struct的每个字段,其中每个字段代表一个nx4单元格。我需要从该单元格的第一列中提取信息,将其作为由逗号分隔的单个字符串,然后将其分配给fname中字段的索引。

(给出上下文:fname是基因的名称,eaach基因内部是依赖于该基因的反应。我需要提取给定基因的所有反应并将它们全部包含在内作为以逗号分隔的字符串)

fname = fieldnames(rxnsBothKaletaS)
for  i = 1:numel(fname)
    gene = rxnsBothKaletaS.(fname{i})

    for j = 1:size(gene,1)
        rxns = rxns + char(string(gene(j,1)));
    end 

    fname(i,2) = rxns; 
end

1 个答案:

答案 0 :(得分:0)

您可以使用structfun遍历结构的字段。然后在我们将应用于每个字段的匿名函数中,我们可以使用strjoin将逗号连接在x的第一列中的所有字符串。

fnames = structfun(@(x)strjoin(x(:,1), ','), rxnsBothKaletaS, 'UniformOutput', 0);