2017-01-18 4 views
0
에 멀티 차원 값을 갖는 내보내기

내가 가지고있는 두 개의 필드와 MATLAB struct 다음 :매트랩 변수 구조체 엑셀

enter image description here

내가 두 개의 열에서 Excel로이 수출 (또는 가진 메모장하는 것을 시도하고있다 objectBoundingBoxes의 두 번째 열). 필드 크기가 2x4 또는 1x4 일 때 세미 콜론으로 구분 된 값 (원하는 값)을 표시하지만 차원이 3x4 이상 (최대 6x4)이면 세미 콜론으로 구분하여 쓰는 대신 3x4 double을 씁니다 값. 이제 Excel에 열을 붙여 넣을 때 값 대신 3x4 double을 씁니다.

Matlab의 변수 표시 창에 3x4 double 대신에 세미 콜론으로 구분 된 값을 표시하는 방법이 있습니까? 그렇지 않다면 이러한 값을 [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

트릭을 수행했습니다. 감사합니다. –