马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我有一个两列数据,第一列为X,第二列为Y,X已经按从i小到大排列好了,其中每一个相同的X值对应着很多Y值,现在我要做的工作是:对于每个相同的X值,我需要把Y值进行如下处理,处理的方法是:对于相同的X值对应着的Y值,将Y值每三个取均值赋给对应的Y值,即y(1)=mean(y(1:3)),当然最后有两个Y值取不到均值,就保持不变;然后对下一个X值,用同样的方法处理!
我写了一段程序,总感觉不对,因为经过处理后的第一个Y值应该为9,Y(6),Y(7)不应该变化,而Y(8)=(6+5+5)/3
clear;
clc;
x=[2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,4,4,9,9,9,9,9,9,9,9];
y=[1,3,23,52,2,3,4,6,5,5,8,8,78,3,2,0,23,1,0,1,2,1,1.2,2.3,5];
xd=diff(x);
bbb=[];
j1=1;
for i1=1:length(xd)
if xd(i1)==0
bbb=[bbb,i1];
else
if ~isempty(bbb)
bbb=[bbb,max(bbb)+1];
for ii=min(bbb):max(bbb)-2
y(ii)=mean(y(ii:ii+2));
end
bbb=[];
j1=j1+1;
end
end
end
[ 本帖最后由 fanzhenjie 于 2010-1-5 21:42 编辑 ] |