2011-06-14 5 views
0

Excel 스프레드 시트를 matlab에 가져 오려고합니다. 여기 내가 구체적으로 원하는 것은 26 개 필드로 구성된 구조체를 각 열 머리글의 필드로 만든 다음 해당 필드의 데이터를 일치하는 열의 해당 데이터로 만들고 싶습니다. 데이터의 범위를 알고 있습니다.Matlab에서 구조체를 사용하여 Excel에서 데이터를 가져 오시겠습니까?

spect importdata('filename.xlsx') returns this 
spect = 
     data: [256x26 struct] 
    textdata: [1x26 struct] 
colheaders: [1x26 struct] 

26 개의 서로 다른 256x1 구조체 필드로 데이터 부분을 나눌 수 있기를 바랍니다. 예를 들어. 아무도 이것으로 나를 도울 수 있습니까?

row: [256x1 struct] 
col: [256x1 struct] 
... 
Cho: [256x1 struct] 
textdata: [1x26 struct] 
colheaders: [1x26 struct] 

답변

1

올바르게 이해하면 배열 배열의 열을 별도의 배열로 분할하고 싶습니까?

이것은 내가 찾고 있어요하지만 난 여전히 SPECT 분야에서 각각의 요소에 액세스 할 수 있도록하려면 주로 무엇

%# define new field names 
newFields = {'row','col','Cho'}; %# and all the rest 

%# loop through new fields to assign columns of spect.data 
for i=1:length(newFields) 
    spect.(newFields{i}) = spect.data(:,i); 
end 

%# remove .data from spect 
spect = rmfield(spect,'data'); 
+0

저것을 할 수있는 방법이다. 예를 들어 spect {i} .row –

+0

@Ben Fossen : 'spect (i) .row'가 원하는 것을 줄까요? – Jonas

+0

아니요, spect (1) .row 및 spect (2) .row를 할 때 목록의 모든 요소를 ​​제공하지 않습니다. 행렬이 행렬 크기를 초과합니다. –

관련 문제