matlab怎么导入excel中所有sheet的指定列向量范围作为x,y的值。

我在一个坐标上画很多很多条线,数据由excel导入,我想同时导入多个sheet,如果单个用xlsread读取太慢了。希望大家能给予帮助和提示。十分感谢。目前代码如下,超简... 我在一个坐标上画很多很多条线,数据由excel导入,我想同时导入多个sheet,如果单个用xlsread读取太慢了。希望大家能给予帮助和提示。十分感谢。目前代码如下,超简单的2维。x1=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet3','G2:G10')';y1=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet3','E2:E10')';plot(x1,y1);hold on x2=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet4','G2:G9')';y2=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet4','E2:E9')';plot(x2,y2);hold on x3=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet5','G2:G9')';y3=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet5','E2:E9')';plot(x3,y3);hold onx4=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet6','G2:G10')';y4=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet6','E2:E10')';plot(x4,y4);hold onx5=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet7','G2:G10')';y5=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet7','E2:E10')';plot(x5,y5);得到了如图所示的几条线,但是数据有成百条的时候不能都这样读取吧?能不能用for循环?但是x,y的取值,并不都是在表中的G2:G10,和E2:E10 。或者我把数据整合在一张表上变成矩阵再处理,但是这样维数会不会报错?因为数据数不一样。 展开
 我来答
lhmhz
高粉答主

2016-08-04 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17024

向TA提问 私信TA
展开全部
你这样写肯定是有问题的,对于同一工作表,可以直接写就可以了,不要分两步取。
把这句
x1=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet3','G2:G10')';
y1=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet3','E2:E10')';
改写成
A=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet3','G2:E10')
x1=A(:,1)
y1=A(:,2)
plot(x1,y1);
hold on
后面的雷同。
对于多表,可以考虑循环语句。
更多追问追答
追问

这样取不对吧G2:E10代表什么?从G2开始的G列,F列,一直到E列的E10?

这是我的表格。按着你的代码并不能得到二维图哦

追答
没有仔细想,应该为
A=xlsread('C:\Users\Administrator\Desktop\07-29预处理.xlsm','Sheet3','E2:G10')
实际上,用xlsread()读取E2:G10单元格的数据,对有含有中文内容的数据那一列是读不出来的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式