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)
-4-15 10:57 上传
-4-15 10:54 上传
点击文件名下载附件
467.58 KB, 下载次数: 25
原数据