Matlab迭代多项式拟合

Matlab迭代多项式拟合,matlab,Matlab,我有x和y数据,每个数组中有n个点。 我想对部分数据使用polyfit 我想将数据划分为一定数量的分区(numDivisions) 我的想法是按照 n= size(x)%number of data points numDivisions = 4;%number of times to divide the data div = zeros(numDivisions,1)%number of points per division p = zer

我有x和y数据,每个数组中有n个点。 我想对部分数据使用polyfit

我想将数据划分为一定数量的分区(numDivisions)

我的想法是按照

n= size(x)%number of data points
        numDivisions = 4;%number of times to divide the data
        div = zeros(numDivisions,1)%number of points per division

        p = zeros(numDivisions,4);% second number is degree of polynomial+1
        S = zeros(numDivisions,1);
        mu = zeros(numDivisions,1);
        E = zeros(numDivisions,1);

        for i = 1:numDivisions
            div(i) = round(n(1,1)*i/numDivisions) %assign markers for divisions of points
        end

        for i = 1:size(div)
            if i == 1
                start = 1;
                endpoint = div(i);
                 [p(i), S(i), mu(i)] = polyfit(x(start:endpoint), y(start:endpoint), 3);
            else
             [p(i), S(i), mu(i)] = polyfit(x(div(i-1):div(i)), y(div(i-1):div(i)), 3);
            end

        end
目标是从多边形拟合得到一个p值数组

但是,当我运行它时,会出现以下错误:

在赋值A(I)=B中,B中元素的数量 我必须是一样的。 错误(第33行) [p(i)、S(i)、mu(i)]= 多边形拟合(x(起点:终点),
y(起点:终点),3)

这里到底是什么?如果
x
y
是向量,则可以对它们进行重塑,并对它们使用一次polyfit。我想对部分数据使用多次polyfit。而不是整个数据集的一个多边形拟合。想象有一组1-10的点,然后对每个截面1-3、3-5、5-7和7-10进行多边形拟合。但是你可以指定你想把它分成多少次。你的方法看起来应该没问题,你的问题是什么?正如丹尼尔所说,这个问题并不十分清楚。Yoor方法似乎并不坏,所以解决问题有点复杂。然而,拟合是重要的还是您真正想要做的?这可能是我这边的一个愚蠢的问题,但请不要感到生气。对不起,我完全忘记了这个问题。哈哈,我编辑了它,把它放在最后。