用通用函数访问Matlab结构域

时间:2014-04-12 22:04:17

标签: matlab struct field

我正在尝试自动化从结构数组中获取信息的过程。

我有以下代码:

function [data] = extractData(struct,str)

data = {};
for i = 1:length(struct)
    data{i} = struct(i).str;
end

问题是我想提供一个参考预定字段的str值。按照目前的形式,它不接受str并说“str是一个未知的领域。”

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用:

function data = extractData(struct)
str = fieldnames(struct);
data = {};
    for i = 1:numel(str)
        data{i} = struct.(str{i});
    end
end

您可能还想在这里考虑一些不同的事情。首先,您可能希望将结构的名称更改为不同的名称,如上所述。您也可以查看单元格数组。单元格数组可以容纳不同类型和长度的变量,并且更易于使用。