Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MATLab中从同一Excel表导入两组数据_Excel_Matlab - Fatal编程技术网

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

在MATLab中从同一Excel表导入两组数据,excel,matlab,Excel,Matlab,我正在为一位大学教授做一个小项目,他需要通过MATLAB对数据进行排序,并对数据进行各种其他操作。我使用以下方法读取数据,没有问题: filename = 'file.xlsx'; data = xlsread(filename) 通过这种方式,它将所有数据导入到一个大矩阵中。从这里开始,在文件本身中,数据分为两大类,左膝和右膝 我的问题是,我试图分离数据,但没有任何运气。因为这两个集合没有被相等的行分割,所以我不能使用简单的数组来选择不同的列。绿色列设置为1,金色列设置为2。有没有一种方法可

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

filename = 'file.xlsx';
data = xlsread(filename)
通过这种方式,它将所有数据导入到一个大矩阵中。从这里开始,在文件本身中,数据分为两大类,左膝和右膝


我的问题是,我试图分离数据,但没有任何运气。因为这两个集合没有被相等的行分割,所以我不能使用简单的数组来选择不同的列。绿色列设置为1,金色列设置为2。有没有一种方法可以让我看第二行是左行还是右行,然后把数据放到不同的集合中?或者有更好的方法吗?

如果您知道数据被放置在特定的范围内,您可以对每组数据执行此操作:

filename = 'file.xlsx';
sheet = 1;
xlRange = 'B2:C3';
subsetA = xlsread(filename, sheet, xlRange)
或者,您可以读取一列数据:

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

否则,您应该在将数据加载到数据数组后像以前一样对其进行分离。

如果您知道数据放置在特定范围内,则可以对每组数据执行此操作:

filename = 'file.xlsx';
sheet = 1;
xlRange = 'B2:C3';
subsetA = xlsread(filename, sheet, xlRange)
或者,您可以读取一列数据:

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

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

看到了您的屏幕截图。。。在列标题中有左膝或右膝的名称

但是xlsread没有给出列标题,只有数字。。。还是这样

发件人:

所以,现在你得到的是“数据”,但你也想得到“文本”。为xlsread再设置一个额外的输出参数,您应该会得到它

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

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

看到了您的屏幕截图。。。在列标题中有左膝或右膝的名称

但是xlsread没有给出列标题,只有数字。。。还是这样

发件人:

所以,现在你得到的是“数据”,但你也想得到“文本”。为xlsread再设置一个额外的输出参数,您应该会得到它

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

然后,您可以在适当的行上使用strfind或strcmp来提取“Left”或“Right”。

每个excel工作表中可以有不同数量的试用,以及随机数目的“Left”和“Right”集合。因此,我需要一种方法来分离它们,或者在矩阵中,或者只是选择正确的细胞。这可能吗?你能提供一个简单的表格示例吗?“在我的photobucket上有一个链接:一组是绿色的,另一组是金色的,正如你在照片中看到的。每个excel工作表中可以有不同的试用次数,以及随机数目的‘左’和‘右’组。因此,我需要一种方法来分离它们,或者在矩阵中,或者只是选择正确的细胞。这可能吗?你能提供一个简单的表单示例吗?“我的photobucket上有一个链接:一组是绿色的,另一组是金色的,正如你在照片中看到的。我尝试使用strfind命令使用:strLeft=strfind(文本“左”)现在我可以看到所有带left的列的位置了。从这里我如何从数据部分中提取列(实际数字)?如果有帮助,我可以向您发送实际的电子表格。[~,c]=find(strcmp(text,'left');left_data=data(:,c);当我这样做时,我会收到:>>[~,c]=find(strcmp(text,'left');>>left_data=data(:,c)>>left_data left_data=Empty matrix:101-by-0有什么想法吗?可能是因为strcmp检查了完整的字符串,并且字符串看起来像是“左膝角度”而不是“左膝角度”。否则,我建议使用来逐行检查代码,看看问题出在哪里。(顺便说一句,对于任何编程问题都有很好的建议!)那么strfind会更好地使用吗?或者只是在“Left”中键入整个内容?我还在上大学,每天学习越来越多。我被要求帮助一位教授做这件事,并说这将是一次很好的学习体验……男孩,我是对的哈哈。我试着使用strfind命令使用:strLeft=strfind(文本,“Left”)现在我可以看到所有带left的列的位置了。从这里我如何从数据部分中提取列(实际数字)?如果有帮助,我可以向您发送实际的电子表格。[~,c]=find(strcmp(text,'left');left_data=data(:,c);当我这样做时,我会收到:>>[~,c]=find(strcmp(text,'left');>>left_data=data(:,c)>>left_data left_data=Empty matrix:101-by-0有什么想法吗?可能是因为strcmp检查了完整的字符串,并且字符串看起来像是“左膝角度”而不是“左膝角度”。否则,我建议使用来逐行检查代码,看看问题出在哪里。(对任何编程问题都有很好的建议,顺便说一句!)那么strfind会更好地使用吗?或者只是在“Left”中键入整个内容?我还在上大学,每天学习的东西越来越多。我被要求帮助一位教授做这件事,并说这将是一次很好的学习经历……男孩,我是对的哈哈。