1

我有一个单元结构,其中有 <1*40 struct> 。每个结构都有相同的字段名称(每个都有 12 个字段名称和各自的值)。我想将此单元格数组导出到 Excel 文件中,以便所有字段名称都成为标题(12 个连续列),并且每个字段名称下方都有其各自的字段值。

我曾使用 cell2struct 尝试过 xlswrite,但它没有帮助。
如果有人可以帮助我吗?

4

1 回答 1

1

如果您的输入数据如下所示:

data = {struct('a', 1, 'b', 2), struct('a', 3, 'b', 4)};

您可以使用struct2cell简单连接的组合来处理它。

首先从元胞数组转换为结构数组:

data = cat(2, data{:});

然后你可以使用struct2cell

values = struct2cell(data(:));

然后列名应该只是fieldnames你的结构

headers = fieldnames(data);

然后您可以将标头与数据连接起来以产生输入xlswrite

xlsdata = cat(2, headers, values)'
xlswrite('filename.xlsx', xlsdata);

xlsdata =

    'a'    'b'
    [1]    [2]
    [3]    [4]

我们可以稍微浓缩一下:

xlsdata = cat(2, fieldnames(data{1}), struct2cell(cat(2, data{:})))';
xlswrite('filename.xlsx', xlsdata);
于 2016-02-18T14:08:45.500 回答