Matlab绘图平滑没有效果

Matlab绘图平滑没有效果,matlab,plot,smoothing,Matlab,Plot,Smoothing,我目前在使用“平滑”命令时遇到了一些问题,即它似乎对生成的绘图没有影响。我已经使用以下脚本生成了一个绘图 for h=1:4 linespec = {'rx', 'gx', 'bx', 'yx'}; hold on for b=1:365 y=mean(mean(A(b,6*(h-1)+1:6*h))); p(h)=plot(b,y,linespec{h}); end hold off end 在数据集A中逐行进行,取前六

我目前在使用“平滑”命令时遇到了一些问题,即它似乎对生成的绘图没有影响。我已经使用以下脚本生成了一个绘图

for h=1:4
    linespec = {'rx', 'gx', 'bx', 'yx'};
    hold on
    for b=1:365
        y=mean(mean(A(b,6*(h-1)+1:6*h)));
        p(h)=plot(b,y,linespec{h});
    end
    hold off
end
在数据集
A
中逐行进行,取前六列中的值的平均值,然后是第7列到第12列、第13列到第18列和第19列到第14列;总共生成四个图

下一步是通过在9的范围内平均值来平滑结果图。因此,我将脚本调整为以下内容:

for h=1:4
    linespec = {'rx', 'gx', 'bx', 'yx'};
    hold on
    for b=1:365
        y=mean(mean(A(b,6*(h-1)+1:6*h)));
        w = smooth(y,9,'moving');
        p(h)=plot(b,w,linespec{h});
    end
    hold off
end

实际上,只需在plot命令中添加
w
变量并将
y
替换为
w
。但这对我的阴谋没有任何影响。Matlab也不会抛出任何错误,所以输入大小似乎没有问题。有人知道问题可能是什么吗?

在任一版本的循环中,您似乎都在绘制
y
的各个值与
b
的各个值。那么,我假定
y
是一个值。无法平滑点,因此
平滑
操作无效

从一开始,你不需要做一个循环来计算各种方法
mean
可以获取2D矩阵并返回向量。一次计算
y
,然后平滑该向量(我认为长度应为365-取决于输入A的大小)。e、 g:

b = 1:365;
y=mean(A(:,6*(h-1)+1:6*h),2);
w = smooth(y,9,'moving');
plot(b,y,'rx');
hold on
plot(b,w,'gx');