2014-09-28 111 views
0

假设我有一个excel文件(data.xlsx),它包含以下数据。
从excel中提取数据到matlab

Name age 
Tom 43 
Dick 24 
Harry 32 


现在我想从中提取数据并进行2单元阵列(或矩阵),其应包含

名= [ '汤姆'; “迪克”;“哈利”]
年龄= [43; 24; 32]

我已经使用xlsread(data.xlsx),但其仅取出的数值,但我想同时获得,如上所述。请帮助我

回答

1

您必须使用xlread的附加输出参数才能获取文本。

我创建了一个虚拟的Excel与您的数据文件,这里是输出(没关系有关NaN的):

[ndata, text, alldata] = xlsread('DummyExcel.xlsx') 

ndata = 

    43 
    24 
    32 


text = 

    'Name'  'Age' 
    'Tom'  '' 
    'Dick'  '' 
    'Harry' '' 


alldata = 

    [NaN] 'Name'  'Age' 
    [NaN] 'Tom'  [ 43] 
    [NaN] 'Dick'  [ 24] 
    [NaN] 'Harry' [ 32] 

现在,如果你使用:

text{2:end,1} 

ans = 

Tom 


ans = 

Dick 


ans = 

Harry 
+0

谢谢,但我需要将它们存储在单个单元格阵列或矩阵中。有没有可能的办法呢? – 2014-09-28 14:49:05

+0

是的,他们已经存储在单元格数组'文本'中。你可以玩'alldata'来检索你需要的东西。由于一切都在单元阵列中,因此将非常简单 – 2014-09-28 15:02:54

1

您可以使用名为importdata的功能。

例子:

%Import Data 
filename = 'yourfilename.xlsx'; 
delimiterIn = ' '; 
headerlinesIn = 1; 
A = importdata(filename,delimiterIn,headerlinesIn); 

这将有助于采取两种文本数据和数字数据。文本数据将在A.textdata下,数值数据将在A.data下。