爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 20352|回复: 3

[讨论] 请教下,如何批量读取xls的数据。

[复制链接]

新浪微博达人勋

发表于 2020-12-25 22:04:33 | 显示全部楼层 |阅读模式
40金钱
附件上传2个数据做试验,load的会批量读取,xls不会,但我觉得把程序中load改为xlsread就可以了(代码红色标注部分)。自己又搞不明白,请各位大佬求助下。
clc;clear;dbstop if error
Path = 'D:\DEM\';   % 设置数据存放的文件夹路径
File = dir(fullfile(Path,'*.xls'));  % 显示文件夹下所有符合后缀名为.txt文件的完整信息
FileNames = {File.name}';   % 提取符合后缀名为.txt的所有文件的文件名,转换为n行1列
Length_Names = size(FileNames,1);  % 获取所提取数据文件的个数
R=[];
P=[];
for k = 1 : Length_Names;
    % 连接路径和文件名得到完整的文件路径
    K_Trace = strcat(Path, FileNames(k));
    % 读取数据(因为这里是.txt格式数据,所以直接用loaP1d()函数)
    eval(['Data',num2str(k),'=','load(K_Trace{1,1})',';']);
    % 注意1:eval()函数是括号内的内容按照命令行执行,
    eval(['P',num2str(k),'=','Data',num2str(k),'(:,9)']);
%     eval(['R',num2str(k),'=','Data',num2str(k),'(3625:4344,5)']);
    eval(['P=[P;P' num2str(k) ']',';']);   %   更改排序方式
%     eval(['R=[R,R' num2str(k) ']',';']);
end


Ti_qu.m

855 Bytes, 下载次数: 0, 下载积分: 金钱 -5

W5m_20130106.xls

673.72 KB, 下载次数: 0, 下载积分: 金钱 -5

W5m_20130224.xls

675.1 KB, 下载次数: 0, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2020-12-25 22:06:38 | 显示全部楼层
不要表头,只读取数据。

clc;clear
a=xlsread('D:\DEM\W5m_20130106.xls','W5m_20130106','A3:J2018'); 这是单个文件读取的方法,研究了半天,实在整不明白,各位大佬帮看看下吧
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 成长值: 32430
发表于 2020-12-26 07:41:36 | 显示全部楼层
多用debug,看看每一步运行之后各个参数的数值。还有就是eval函数和转义字符(你这个例子里面转义字符超级多…)的用法要熟悉一下。其实这个并不难,我猜应该是这么改(因为没有其它参考资料,我只能这么改,会不会出现问题我也不知道)

FileHeader=strsplit(FileNames(k),'.');
eval(['Data',num2str(k),'=xlsread(‘’‘,K_Trace{1,1},'‘’,‘’',FileHeader{1},''',''A3:J2018'');']);
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-12-26 08:22:40 | 显示全部楼层
二爷名声在外 发表于 2020-12-26 07:41
多用debug,看看每一步运行之后各个参数的数值。还有就是eval函数和转义字符(你这个例子里面转义字符超级 ...

谢谢大佬,我急已经解决了
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表