24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2066  |  回复: 6

zijie0620

新虫 (初入文坛)

[求助] matlab循环语句怎么读取excel第二列并存入新excel

matlab循环语句怎么读取多个excel中的第二列并组成矩阵存入新excel中,多谢了,6个金币是我所有的家当了
回复此楼

» 收录本帖的淘帖专辑推荐

matlab典型案例及小技巧 World of computation

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

交流学习
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

兵封年代

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zijie0620: 金币+6 2013-11-14 10:18:55
1、首先获取excel所在文件夹的所有文件,构成路径变量files
dirname=uigetdir('F:\','浏览文件夹');
files=dir([dirname,'\*.xls']);

2. 循环取出指定文件里的内容,这里就两个函数,xlsrread和xlswrite两个函数,你可以自己查阅下这两个函数的用法。下面的代码只是示例,请根据自己的情况做调整。
for k = 1:numel(files)              % 循环到每一个文件
           [num,txt] = xlsread([dirname '\' files(1).name], 1,'A2:L4');
          data{1}=num(:,1);  
          data{2}=num(:,6);
          xlswrite(filename,A,range)
end
2楼2013-11-13 14:32:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zijie0620

新虫 (初入文坛)

1中除了浏览文件要修改,其他不用改了吧?
2中for k = 1:numel(files)如果我的是100个excel文件,是不是就改成1:100?
还有 [num,txt] = xlsread([dirname '\' files(1).name], 1,'A2:L4');等号右边files(1)什么意思啊?,还有后面的1,A2:L4,
data{1}=num(:,1);  
          data{2}=num(:,6);  xlswrite(filename,A,range)都代表什么啊?我没有c语言基础,看不懂啊?
交流学习
3楼2013-11-13 20:04:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

兵封年代

木虫 (小有名气)

引用回帖:
3楼: Originally posted by zijie0620 at 2013-11-13 20:04:35
1中除了浏览文件要修改,其他不用改了吧?
2中for k = 1:numel(files)如果我的是100个excel文件,是不是就改成1:100?
还有  = xlsread(, 1,'A2:L4');等号右边files(1)什么意思啊?,还有后面的1,A2:L4,
  ...

1、浏览文件夹不需要修改,语句运行后会弹出对话框要求你选定文件夹就可以了。
2、numel(files)就是对文件的个数进行计数,不需要自己指定文件个数。
3、files(1)就是第一个文件的意思,在循环内应写成files(k)。
4、后面的函数调用参数你可以在matlab的command窗口里输入以下命令查看具体用法,(查看其它函数的用法也一样)
doc xlsread
doc xlswrite
4楼2013-11-15 09:44:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zijie0620

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by 兵封年代 at 2013-11-15 09:44:27
1、浏览文件夹不需要修改,语句运行后会弹出对话框要求你选定文件夹就可以了。
2、numel(files)就是对文件的个数进行计数,不需要自己指定文件个数。
3、files(1)就是第一个文件的意思,在循环内应写成files(k)。 ...

好的,非常感谢。这个金币怎么给你啊?我不太会操作?
交流学习
5楼2013-11-15 16:26:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

半路学子

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 兵封年代 at 2013-11-13 14:32:30
1、首先获取excel所在文件夹的所有文件,构成路径变量files
dirname=uigetdir('F:\','浏览文件夹');
files=dir();

2. 循环取出指定文件里的内容,这里就两个函数,xlsrread和xlswrite两个函数,你可以自己查阅下 ...

大神,我按照你的方法来读取某几列,调试了好几次,但是出现这种情况。请问你有何高见?怎么解决啊?我看了大概好像是Excel出现了什么问题,第一次遇见,居然出错在Excel!我用的是Excel2003版本的。
dirname=uigetdir('D:\','files');
>> files=dir([dirname,'\*.xls']);
>> for k = 1:numel(files)
[num,txt] = xlsread([dirname '\' files(k).name], 1,'A2:L4');
data{1}=num(:,1);
data{2}=num(:,6);
xlswrite('D:\','filename',1,'A2:L4')
end
??? Invoke Error, Dispatch Exception:
Source: Microsoft Office Excel
Description: 类 Workbook 的 SaveAs 方法无效
Help File: C:\Program Files (x86)\Microsoft Office\OFFICE11\2052\xlmain11.chm
Help Context ID: 0
6楼2015-09-11 10:44:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

半路学子

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 兵封年代 at 2013-11-13 14:32:30
1、首先获取excel所在文件夹的所有文件,构成路径变量files
dirname=uigetdir('F:\','浏览文件夹');
files=dir();

2. 循环取出指定文件里的内容,这里就两个函数,xlsrread和xlswrite两个函数,你可以自己查阅下 ...

大神,如果我提取的Excel表格中的某几列,这几列并不是连续的,应该怎么改进呢?还有,同时我还要提取某几行,连续的行。请指教!
7楼2015-09-11 11:06:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zijie0620 的主题更新
信息提示
请填处理意见