在matlab中提取第4个结构文件

时间:2016-11-14 19:51:06

标签: matlab

我有1个字段的matlab数据1x617 stuct,每行有4个字段的1x1结构。如何提取数据以获得617数据的第4个字段,第4个字段为nx1 double。感谢

1 个答案:

答案 0 :(得分:0)

根据您的变量结构,有时可以通过简单的索引引用来轻松解决它。但是,在您要从struct变量数组中的某个特定字段收集数据的情况下,我建议在Matlab FileExchange上使用structval

这是链接:

Struct 2 array or cell for desiginated fieldname

让我们假设您的变量看起来像这样

for idx = 1:617
    b.a = ones(1,1)*idx;
    b.b = ones(2,1)*idx;
    b.c = ones(3,1)*idx;
    b.d = ones(4,1)*idx;
    s(1,idx).a = b;
end

上面的代码创建了一个包含1个字段的1x617 stuct,每行包含1x1结构,包含4个字段。在这里,我假设每行中第4个字段的名称是相同的。

现在使用structval

r = structval(s,'d');

结果是 1x617 单元格数组。如果您在每个索引处碰巧具有相同的字段大小(例如 nx1 数组),请使用

r = structval(s,'d','collapse',true);

返回 nx617 数组