matlab排序excel数据库,matlab对excel数据进行排序求和

从excel中读取数据

[num, txt, raw]=xlsread(filename, sheet, xlRange)

参数说明:filename是所需读取的文件名,比如说‘样本.xls’;选择所在的sheet,比如说’sheet1’;xlrange为读取的单元格范围,比如说’A2:F101’.

返回值:函数num返回xls中的数字,txt返回xls中的文本,通常 raw 返回的元胞矩阵,更通用一些,所以以下将使用元胞矩阵进行操作,如果不想让函数返回 num, txt, 可 以用 ~ 代替:

[~, ~, raw]=xlsread(filename, sheet, xlRange)

什么是元胞矩阵:元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell)。比如说读取excel表格时可将所有数据都包含在raw中,比如成绩单中的姓名。

从元胞矩阵中取出特定的数据进行排序求和

元胞数组进行排序,求和,求均值等处理需要转化为矩阵 (non-cell array)

以下声明新变量(矩阵)intermediate用作数据临时处理

intermediate=cell2mat(raw(:, 2 : 6));

其中 raw(:, 2 : 6)意义为: 取出raw矩阵中的从第2列到第6列的(第二个参数)所有行(第一个参数),并用cell将取出的元胞矩阵转换成普通矩阵,以便进行排序求和计算。关于取矩阵相关知识请自行百度

排序,求和

排序sort(intermediate, 2)

求和sum(intermediate, 2)

其中sort和sum参数类型相似,第一个参数为需要排序操作的矩阵,第二个参数为按行或者按列排序,参数1为按列排序,参数2为按行排序,相关知识自行百度

用以排序和求和好的intermediate更新raw

raw(:, 2 : 7)=num2cell([sort(intermediate, 2), sum(intermediate, 2)]);

含关键字排序

raw=sortrows(raw, -7);

输出到excel

xlswrite('样本1.xls',raw,'A2:G101')

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值