2017-01-18 10 views
0

У меня есть следующие MATLAB struct с двумя полями:Экспорт Matlab переменной Struct имеющей многослойного значение измерений в Excel

enter image description here

я пытаюсь экспортировать это в Excel в двух столбцах (или блокнот, только что второй столбец объектаBoundingBoxes). Когда размеры поля равны 2x4 или 1x4, он отображает значения, разделенные двоеточием (это то, что я хочу), но когда размер составляет 3x4 или выше (до 6x4), он просто записывает 3x4 double вместо того, чтобы писать их как разделение с двумя двоеточиями значения. Итак, теперь, когда я копирую вставки столбцы в Excel, он просто записывает 3x4 double вместо значений.

Есть ли способ отображения значений, разделенных запятыми, вместо 3x4 double в окне отображения переменных Matlab? Если нет, то можете ли вы предложить другой способ экспорта этих значений в качестве [1,2,3,4; 5,6,7,8; 9,0,1,2 ....].

ответ

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

Это сделало трюк .. Большое спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^