matlab筛选excel数据统计,MATLAB读取Excel筛选符合条件的数据进行求均值等处理 程序......

excel 中A列为ID号,共21组;B列为标记号,分0~9 10档。程序打算对每个ID的每档的几行数求平均,并将曲线纵坐标的最大值调整为100。处理后的数据分别存储写入到不同的新excel表格。

代码如下:

clear

clc

A = xlsread('1.xlsx','sheet1',[int2str(1),':',int2str(1142)])

for i=1:21    %id

for j=0:9   %power

B = find(A(:,1)==i & A(:,2)==j)

C = mean(A(B,3:length(A)))

D = (C - (min(C,[],2)))./((max(C,[],2))-(min(C,[],2))).*100

name = [num2str(i+1),'.xlsx'];

xlswrite(name,D,'Sheet1',[int2str(j+1),':',int2str(j+1)])

end

end

运行后出错:Index exceeds matrix dimensions. 不太清楚是怎么回事了。

但是只读取id为 1和2 (excel中1-114行数据)时就不会出错,之后就不行了。如下代码可以运行:

clear

clc

A = xlsread('1.xlsx','sheet1',[int2str(1),':',int2str(114)])

for i=1:2    %id

for j=0:9   %power

B = find(A(:,1)==i & A(:,2)==j)

C = mean(A(B,3:length(A)))

D = (C - (min(C,[],2)))./((max(C,[],2))-(min(C,[],2))).*100

name = [num2str(i+1),'.xlsx'];

xlswrite(name,D,'Sheet1',[int2str(j+1),':',int2str(j+1)])

end

end

但全部读取就不行。想向大神求助一下,本人刚开始接触MATLAB,比较菜鸟,求指点:'(

错误.PNG

(2.14 KB, 下载次数: 1)

2015-4-15 10:57 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

74de915a1618e97709967a0489374128.png

5724a1379ceb16a514510c7aa4f77048.gif

2015-4-15 10:54 上传

点击文件名下载附件

467.58 KB, 下载次数: 25

原数据

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Matlab的`xlsread`和`xlswrite`函数读取和写入Excel文件,对数据进行处理后再将处理结果写入Excel文件。 下面是一个示例代码,用于将Excel数据进行标准化处理、归一化处理、缺失值处理和异常值处理,并将处理结果写入Excel文件。 ```matlab % 读取Excel文件数据 data = xlsread('data.xlsx'); % 标准化处理 data_std = (data - mean(data)) ./ std(data); % 归一化处理 data_norm = (data - min(data)) ./ (max(data) - min(data)); % 缺失值处理(用均值填充) data_mean = mean(data); data_fill = data; for i = 1:size(data, 2) idx = isnan(data(:,i)); data_fill(idx,i) = data_mean(i); end % 异常值处理(用位数替换) data_med = median(data); data_replace = data; for i = 1:size(data, 2) q1 = quantile(data(:,i), 0.25); q3 = quantile(data(:,i), 0.75); iqr = q3 - q1; upper = q3 + 1.5 * iqr; lower = q1 - 1.5 * iqr; idx = (data(:,i) > upper) | (data(:,i) < lower); data_replace(idx,i) = data_med(i); end % 将处理结果写入Excel文件 xlswrite('data_processed.xlsx', data_std, 'Standardized'); xlswrite('data_processed.xlsx', data_norm, 'Normalized'); xlswrite('data_processed.xlsx', data_fill, 'Filled'); xlswrite('data_processed.xlsx', data_replace, 'Replaced'); ``` 在这个示例代码,我们首先使用`xlsread`函数读取Excel文件数据。然后,使用Matlab的矩阵运算对数据进行标准化处理和归一化处理。接下来,我们使用循环和`isnan`函数找到缺失值,并用均值填充缺失值。最后,我们使用循环和四分位数(Q1和Q3)找到异常值,并用位数替换异常值。最后,我们使用`xlswrite`函数将处理结果写入Excel文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值