使用for循环平均绘图值

时间:2014-05-01 21:46:20

标签: matlab plot

我正在尝试平均我的绘图(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值,并在每次运行后平均它们。然后可以获得更平滑的曲线。很抱歉没有正确解释。

1 个答案:

答案 0 :(得分:1)

听起来你想要保持一个运行总和然后除以#的值。你可以试试这个......

plot(x, y);
hold on;
plot(x, cumsum(y) ./ (1:length(y)), 'r');
相关问题