2011-06-14 61 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