将单元结构从Matlab导出到Excel

时间:2016-02-18 09:56:48

标签: arrays excel matlab export-to-excel matlab-struct

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

我使用cell2struct尝试了xlswrite,但它没有帮助 如果有人能帮我这个吗?

1 个答案:

答案 0 :(得分:0)

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

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);