2017-01-18 69 views
0

我有以下MATLAB struct有兩個領域:導出Matlab的可變結構具有多維度值到Excel

enter image description here

我想這在兩列導出到Excel(或者記事本剛走objectBoundingBoxes的第二列)。當字段尺寸是2x4或1x4時,它顯示分號分隔的值(這是我想要的),但是當尺寸爲3x4或更高(最大爲6x4)時,它只會寫入3x4 double,而不是將它們編寫爲分號分隔值。所以現在當我複製粘貼列到Excel時,它只是寫3x4而不是值。

有沒有什麼辦法在Matlab的變量顯示窗口中顯示分號分隔值而不是3x4 double?如果不是,那麼你能否建議另外一種出口這些值的方式[1,2,3,4; 5,6,7,8; 9,0,1,2 ......。

回答

1

你可以做的是使用struct2cell將其轉換爲二維單元陣列,然後你可以使用mat2str將第二列(objectBoundingBoxes字段)轉換爲字符串,它將矩陣轉換爲字符串。然後您應該可以將結果複製到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); 
+0

這樣做的技巧..非常感謝! –