我有以下MATLAB struct
,其中包含两个字段:
我正在尝试将其导出到两列中的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 ....]。
答案 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);