Matlab迭代多项式拟合
我有x和y数据,每个数组中有n个点。 我想对部分数据使用polyfit 我想将数据划分为一定数量的分区(numDivisions) 我的想法是按照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
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方法似乎并不坏,所以解决问题有点复杂。然而,拟合是重要的还是您真正想要做的?这可能是我这边的一个愚蠢的问题,但请不要感到生气。对不起,我完全忘记了这个问题。哈哈,我编辑了它,把它放在最后。