在MATLab中从同一Excel工作表导入两组数据

时间:2014-04-07 20:44:40

标签: excel matlab

我正在为一所大学教授开展一个小项目,他需要通过MATLAB对数据进行分类,并对数据进行各种其他操作。我使用以下方法读取数据没有问题:

filename = 'file.xlsx';
data = xlsread(filename)

有了它,它将所有数据导入一个大矩阵。从这里开始,在文件本身内,数据分为左右膝盖和右膝盖两大类。

我的问题是我试图将数据分开,但没有运气。由于这两个集合没有被相等的行划分,我不能使用简单的数组来选择不同的列。绿色列设置为一个,金色设置为两个。有没有办法我可以查看第二行,看它是左还是右,然后将数据放入不同的集合中?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

看到你的截图...你已经在列标题中找到左右膝盖指定。

但是xlsread没有给出列标题,只给出了数字......还是它?

来自Matlab help for xlsread

[ndata, text, alldata] = xlsread('myExample.xlsx')
ndata =
     1     2     3
     4     5   NaN
     7     8     9

text = 
    'First'    'Second'    'Third'
    ''         ''          ''     
    ''         ''          'x'    

alldata = 
    'First'    'Second'    'Third'
    [    1]    [     2]    [    3]
    [    4]    [     5]    'x'    
    [    7]    [     8]    [    9]

xlsread returns numeric data in array ndata, text data in cell array text, and unprocessed data in cell array alldata.

所以,现在你得到的是“ndata”,但你也希望获得“文本”。为xlsread设置另外一个输出参数,你应该得到它。

[data, text, ~] = xlsread(filename); % the ~ just means throw away that third output

然后你可以在适当的行上使用strfind或strcmp来拉出“Left”或“Right”。

答案 1 :(得分:0)

如果您知道数据位于特定范围内,您可以为每组数据执行此操作:

filename = 'file.xlsx';
sheet = 1;
xlRange = 'B2:C3';
subsetA = xlsread(filename, sheet, xlRange)

或者您可以阅读一列数据:

columnB = xlsread(filename,'B:B')

否则,您应该像以前一样将数据加载到数据数组后将其分开。