matlab确定曲线

时间:2012-09-16 15:31:29

标签: matlab

有谁知道如何获得具有矩阵的平均曲线,该矩阵具有与原始图相对应的x,y点?我的意思是,我假装中等曲线。

任何代码或只是想法对我来说都非常有用,因为我是matlab的新手。 非常感谢你!

1 个答案:

答案 0 :(得分:1)

嗯,你可以做的一件事是拟合参数曲线。以下是关于如何对图8中的噪声执行此操作的示例:

function findParamFit
    clc, clf, hold on

    %# some sample data
    noise = @(t) 0.25*rand(size(t))-0.125;
    x     = @(t) cos(t)    + noise(t);
    y     = @(t) sin(2*t)  + noise(t);

    t = linspace(-100*rand, +100*rand, 1e4);

    %# initial data
    plot(x(t), y(t), 'b.')        

    %# find fits 
    options = optimset(...
        'tolfun', 1e-12,...
        'tolx', 1e-12);

    a = lsqcurvefit(@myFun_x, [1 1], t, x(t), -10,10, options);     
    b = lsqcurvefit(@myFun_y, [1 2], t, y(t), -10,10, options);

    %# fitted curve
    xx = myFun_x(a,t);
    yy = myFun_y(b,t);   
    plot(xx, yy, 'r.') 

end

function F = myFun_x(a, tt)
    F  = a(1)*cos(a(2)*tt);
end

function F = myFun_y(b, tt)
    F  = b(1)*sin(b(2)*tt);
end

请注意,这是拟合参数曲线的一种特别糟糕的方法,这一点可以通过解决方案对初始值质量lsqcurvefit的极端敏感性来表现出来。然而,拟合参数曲线将是最佳选择。

你的谷歌查询:)