• 回答数

    5

  • 浏览数

    2621

  • 收藏数

    0

作者:暴走的短腿猫 发表于 2018-11-20 16:42:38
跳转到指定楼层
我有24个excel,名字一次是0 1 2 .......23   然后每个excel里面有4230行   我想要计算每个excel里面的D列到R列每列的平均值   并且把这24列平均值存到一个新的excel里面   但是 当我读取这些excel的时候 发现matlab是按照excel名字正则表达读去的 也就是0 1 11 12 13 ....2 21 22.......3 4 ......9
现在怎么让其进行正常的升序读取呢

matlab与excel


24个excel表



代码






D到R列




分享:
回复

使用道具

该用户从未签到

新手上路

Rank: 1

积分
40
极客币
100
主题
12
帖子
46
注册时间
2018-10-19
在线时间
2 小时
性别
保密
发表于 2018-11-20 16:42:53 | 显示全部楼层
xlsread(['G:\works\MATLAB\',num2str(i-1),'.xls'])
回复

使用道具 举报

该用户从未签到

新手上路

Rank: 1

积分
47
极客币
115
主题
14
帖子
59
注册时间
2018-10-19
在线时间
3 小时
性别
保密
 楼主| 发表于 2018-11-20 16:43:36 | 显示全部楼层
离别伊人憔 发表于 2018-11-20 16:42
xlsread(['G:\works\MATLAB\',num2str(i-1),'.xls'])

clc
clear
List =dir('F:\week\*.xls')%读取文件下面的所有excel表

for i=1:length(List)
    sheet=1;%计算sheet1中的数据
     xlRange = 'D1:R4230';
     xlsread(['F:\week\',num2str(i-1),'.xls'])
     M(:,i)=mean(A,2);%M的每一列就是一个Excel里面的每行平均值
end
xlswrite('F:\week\平均值.xls',i)
这样输出的平均值.xls  表格里面只有一个值24
回复

使用道具 举报

该用户从未签到

中级会员

Rank: 3Rank: 3

积分
500
极客币
103
主题
14
帖子
44
注册时间
2018-10-19
在线时间
3 小时
性别
保密
发表于 2018-11-20 16:43:50 | 显示全部楼层
clc
clear

for i=1:24
    sheet=1;%计算sheet1中的数据
     xlRange = 'D1:R4230';
     A=xlsread(['F:\week\',num2str(i-1),'.xls'])
     M(:,i)=mean(A,2);%M的每一列就是一个Excel里面的每行平均值
end
xlswrite('F:\week\平均值.xls',M)
回复

使用道具 举报

该用户从未签到

新手上路

Rank: 1

积分
47
极客币
115
主题
14
帖子
59
注册时间
2018-10-19
在线时间
3 小时
性别
保密
 楼主| 发表于 2018-11-20 16:43:59 | 显示全部楼层
我运行您的代码 报错如下
错误使用 xlsread (line 260)
调用错误,调度异常:
源: Microsoft Excel
说明: Office 检测到此文件存在一个问题。要帮助保护您的计算机,不能打开此文件。
帮助文件: xlmain11.chm
帮助上下文 ID: 0

出错 nothing (line 8)
    A=xlsread(['F:\week\',num2str(i-1),'.xls'])
回复

使用道具 举报

该用户从未签到

新手上路

Rank: 1

积分
47
极客币
115
主题
14
帖子
59
注册时间
2018-10-19
在线时间
3 小时
性别
保密
 楼主| 发表于 2018-11-20 16:44:38 | 显示全部楼层

clc
clear
% List =dir('F:\week\*.xls')%读取文件下面的所有excel表
稍微修改了下 可以运行了 并且结果也是对的了 非常感谢
for i=1:24
     sheet=1;%计算sheet1中的数据
     xlRange = 'D1:R4230';
     A=xlsread((['F:\week\',num2str(i-1),'.xls']),sheet,xlRange)
     M(:,i)=mean(A,2);%M的每一列就是一个Excel里面的每行平均值
end
xlswrite('F:\week\平均值.xls',M)
回复

使用道具 举报

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录
关于作者
暴走的短腿猫

用户组:新手上路

  • 主题

    14

  • 帖子

    59

  • 关注者

    1