请教一下如下控制程序应该如何写
我有一个两列数据,第一列为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=;
y=;
xd=diff(x);
bbb=[];
j1=1;
for i1=1:length(xd)
if xd(i1)==0
bbb=;
else
if ~isempty(bbb)
bbb=;
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 编辑 ]
回复 楼主 fanzhenjie 的帖子
试跑下, 怪!Y值为9,Y(6),Y(7)没变化,而Y(8)=(6+5+5)/3! LZ的程序不是对了么?哪里出错了?我运行完的结果跟LZ所要求的一样:
y =
Columns 1 through 11
9.0000 26.0000 25.6667 19.0000 3.0000 3.0000 4.0000 5.3333 6.0000 7.0000 31.3333
Columns 12 through 22
29.6667 27.6667 1.6667 8.3333 0 23.0000 1.0000 0 1.0000 2.0000 1.0000
Columns 23 through 25
1.2000 2.3000 5.0000
页:
[1]