2011-06-14 47 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.data的數組的列拆分成單獨的數組?

這是你如何能做到這

%# 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領域。例如spect {i} .row – 2011-06-15 17:12:34

+0

@Ben Fossen:'spect(i).row'會給你你想要的嗎? – Jonas 2011-06-15 18:50:03

+0

不,它不會在列表(1).row和spect(2).row超出矩陣尺寸時給出列表中的所有元素。 – 2011-06-15 19:07:31