将具有多维值的Matlab变量结构导出到Excel

时间:2017-01-18 03:27:03

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

我有以下MATLAB struct,其中包含两个字段:

enter image description here

我正在尝试将其导出到两列中的Excel(或者只包含第二列objectBoundingBoxes的记事本)。当字段尺寸为2x4或1x4时,它会显示半冒号分隔值(这是我想要的),但是当尺寸为3x4或更高(最高为6x4)时,它只会写入3x4双倍而不是将它们写为半冒号分隔值。所以现在当我将列复制粘贴到Excel时,它只会写入3x4 double而不是值。

有没有办法在Matlab的变量显示窗口中显示半冒号分隔值而不是3x4 double?如果没有,那么请你建议另一种方法将这些值输出为[1,2,3,4; 5,6,7,8; 9,0,1,2 ....]。

1 个答案:

答案 0 :(得分:1)

您可以使用struct2cell将其转换为2D单元格数组,然后您可以使用objectBoundingBoxes将第二列(mat2str字段)转换为字符串将矩阵转换为字符串。然后,您应该能够将结果复制到Excel

% Create some pseudo-data to test
your_struct = struct('imageFilename', {'file1', 'file2', 'file3'}, ...
                     'objectBoundingBox', {1, rand(4,2), 2});

% Convert your struct into an N x 2 cell array
C = squeeze(struct2cell(your_struct)).';

% Convert the second column to strings which represent the matrices
C(:,2) = cellfun(@mat2str, C(:,2), 'UniformOutput', false);