9

グラデーション画像

青のプロットは、元のプロット (赤) のノイズの多いプロットです。青いプロットをほぼ赤いプロットに近づける方法はありますか?

4

4 に答える 4

11

もう 1 つのオプションは、'smooth' を使用することです。1行の関数なので、私はそれを使うのが好きです。@Junuxxによる以前の回答のコードを使用:

x = 0:.1:20;
y1 = 5*sin(x) + 2*x - x.^2 +.3*x.^3 - .2*(x-15).^4 - 10*x.^2.*cos(x./3+12).^3 + .5*(x-12).^4;
r = randi(1000,1,201) - 500;
y2 = y1+r;

スムーズに適用します。

ys = smooth(x,y2,0.25,'rloess');
plot(x,y2,x,ys)

ここに画像の説明を入力

詳細については:

doc smooth
于 2012-10-20T16:27:57.053 に答える
3

gausswin()Signal Processing Toolboxが必要です

smooth()Curve Fitting Toolboxが必要です

これらのツールボックスがない場合は、簡単なsmooth()実装を次に示します。

Smooth.m:

function yy = smooth(y, span)
    yy = y;
    l = length(y);

    for i = 1 : l
        if i < span
            d = i;
        else
            d = span;
        end

        w = d - 1;
        p2 = floor(w / 2);

        if i > (l - p2)
           p2 = l - i; 
        end

        p1 = w - p2;

        yy(i) = sum(y(i - p1 : i + p2)) / d;
    end
end

y3 = smooth(y2, 15)@Junuxx コードを使用した の結果:

ここに画像の説明を入力

于 2015-09-03T14:53:44.337 に答える
2

追加のオプションを追加するだけです:

cftoolmatlab のプロンプトで使用します。

ここに画像の説明を入力

于 2012-10-20T14:04:35.020 に答える