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

原数据

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐