24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2745  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

yangyong177

木虫 (小有名气)

[求助] matlab求助:批量导入大量无规律excel文件,并按年月日合并数据已有2人参与

求助:各位大神们,小弟接触matlab不久,菜鸟一名,请各位大神指导帮忙:1)如何批量导入大量命名无规律的excel文件,2)导入excel文件中各数据长度不一,如何按相同的日期合成一个文件。数据很多,无法完整上传。仅上传4个excel例子,请大家帮忙指导。
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : PSA287.xlsx
  • 2018-06-01 16:05:58, 44.52 K
  • 附件 2 : PSA447.xlsx
  • 2018-06-01 16:05:58, 37.58 K
  • 附件 3 : PSA546.xlsx
  • 2018-06-01 16:05:58, 30.37 K
  • 附件 4 : PSA561.xlsx
  • 2018-06-01 16:05:59, 39.24 K

» 猜你喜欢

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

yangyong177

木虫 (小有名气)

送红花一朵
引用回帖:
10楼: Originally posted by young_sir at 2018-06-07 23:02:41
因为for循环里,每次读取都存到变量data里了,下一次读取时就把上一次覆盖了,我这里只是给了一个示范。
第二个你可以重述一下你的要求吗,或者给个例子
...

非常感谢您的回复。根据发帖时给出的例子(4个excel文件,分别为938*10,808*10,602*10,和838*10,所有的234列分别为年月日)。由于每个文件日期长短不一,我的目的是按照相同日期,按行每一行横着合并成一个n*40矩阵,其中n为日期相同的行数。即找出多个数组中日期相同的那一行,再横着合并成40列的数组,每一行日期一致。实在不好意思,还望您能帮忙。
12楼2018-06-08 10:23:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

lds588

铁杆木虫 (著名写手)

愚钝

[url=http://weibo.com/u/2577306830?s=6uyXnP][img]http://service.t.sina.com.cn/widget/qmd/2577306830/fa2fdb00/1.png[/img][/url]
2楼2018-06-03 09:52:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

young_sir

银虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2018-06-03 23:19:18
yangyong177: 金币+888, ★★★很有帮助, 非常感谢,不过还有点小问题请教 2018-06-06 10:40:00
1)如何批量导入大量命名无规律的excel文件

     Matlab可以做到遍历当前文件夹下面的所有文件。举例:我在桌面上建立一个TEMP的文件夹,并把楼主给的4个xlsx都放到其中。然后通过下面的循环读出所有后缀为'xlsx'的文件名。
CODE:
path = 'C:\Users\asus-ps\Desktop\TEMP\'; fileExtension = '*.xlsx'; files = dir(fullfile(path,fileExtension)); len = size(files,1); for ii = 1:len fileName = strcat(path,files(ii,1).name) end

读取数据就更简单了,用xlsread就行。
CODE:
for ii = 1:len fileName = strcat(path,files(ii,1).name); data = xlsread(fileName) end

2)导入excel文件中各数据长度不一,如何按相同的日期合成一个文件。

    第1)步每次读出的data就是数据表的10列数据,根据2--4列的年月日信息进行归类即可。
3楼2018-06-03 22:49:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

FMStation

至尊木虫 (知名作家)

【答案】应助回帖


jjdg: 金币+1, 感谢参与 2018-06-09 01:02:11
https://www.mathworks.com/help/matlab/ref/xlsread.html
CODE:
values = {1, 2, 3 ; 4, 5, 'x' ; 7, 8, 9};
headers = {'First','Second','Third'};
xlswrite('myExample.xlsx',[headers; values]);

filename = 'myExample.xlsx';
A = xlsread(filename)

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

filename = 'myExample.xlsx';
columnB = xlsread(filename,'B:B')

[num,txt,raw] = xlsread('myExample.xlsx')

https://www.mathworks.com/help/matlab/import_export/exporting-to-excel-spreadsheets.html
CODE:
load patients.mat
T = table(LastName,Age,Weight,Smoker);
T(1:5,:)

filename = 'patientdata.xlsx';
writetable(T,filename,'Sheet',1,'Range','D1')

writetable(T,filename,'Sheet',2,'WriteVariableNames',false)

» 本帖已获得的红花(最新10朵)

4楼2018-06-05 08:06:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见