我正在尝试平均我的绘图(X,Y)数据,以便获得更平滑的曲线
概念就是这种方式,我可以在命令窗口中执行。
命令窗口:
plot(X,Y)
yold=y
plot(X,(Y+yold)/2.)
yold2=y
plot(X,(Y+yold+yold2)/3.)
我可以从命令窗口执行此操作以使曲线平滑,但这将非常耗时。这是我的代码。
代码:
plot(X,Y);
yoldy=0;
yold=0;
for av=1:100
yoldy=yoldy+yold;
plot(X,(Y+yoldy)/av);
yold=Y;
end
plot(X,(Y+sum(yoldy)/101))
由于某种原因,图表看起来相同,即未平均的图表。是不是我的yoldy没有在每个阶段存储所有的Y值?
这个问题是为了解决程序中的平均值X.这可以简单地通过添加一个循环来实现,该循环具有您希望程序运行的次数,存储每个X值,并在每次运行后平均它们。然后可以获得更平滑的曲线。很抱歉没有正确解释。
答案 0 :(得分:1)
听起来你想要保持一个运行总和然后除以#的值。你可以试试这个......
plot(x, y);
hold on;
plot(x, cumsum(y) ./ (1:length(y)), 'r');