我正在为一所大学教授开展一个小项目,他需要通过MATLAB对数据进行分类,并对数据进行各种其他操作。我使用以下方法读取数据没有问题:
filename = 'file.xlsx';
data = xlsread(filename)
有了它,它将所有数据导入一个大矩阵。从这里开始,在文件本身内,数据分为左右膝盖和右膝盖两大类。
我的问题是我试图将数据分开,但没有运气。由于这两个集合没有被相等的行划分,我不能使用简单的数组来选择不同的列。绿色列设置为一个,金色设置为两个。有没有办法我可以查看第二行,看它是左还是右,然后将数据放入不同的集合中?或者有更好的方法吗?
答案 0 :(得分:4)
看到你的截图...你已经在列标题中找到左右膝盖指定。
但是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')
否则,您应该像以前一样将数据加载到数据数组后将其分开。