¿Cómo utilizar una puntuación alta para realizar matlab para ajustar un conjunto de datos con la curva de Bézier en línea?
P = POLYFIT(X, Y, N) calcula los coeficientes del polinomio de enésimo grado P(X), que se ajusta mejor a los datos Y en el sentido de mínimos cuadrados. p es un vector fila de longitud N 1 que contiene coeficientes polinomiales de potencia decreciente, p(1)*x^n p(2)*x^(n-1) ... P(N)*X P(N 1).
Interpolación spline cúbica
pp = spline(x,Y) devuelve la forma polinómica por partes de la interpolación spline cúbica para su uso posterior con ppval y la utilidad spline unmkpp. x debe ser un vector. y puede ser un escalar, un vector o una matriz de cualquier dimensión. Si Y es una matriz no vectorial, entonces el tamaño de Y debe ser [d1, d2, ...dk, n], donde n es la longitud de x. Realice una interpolación para cada d1 multiplicado por d2: el valor dk en y.
yy = spline(x, Y, xx) es lo mismo que yy = ppval(spline(x, Y), xx), por lo que el valor interpolado en xx se proporciona en yy. xx puede ser una matriz escalar, vectorial o multidimensional.
Curva de Bézier
Función [X, Y] = Bézier (X, Y)
Tasa de uso:
Curva de Bézier(x ,y)
Genera una curva de Bézier n-1, donde xey son las coordenadas de n puntos.
h = Curva de Bézier(x, y)
Genera n-1 curvas de Bézier y devuelve el controlador de curva.
[X, Y]=Curva de Bézier (X, Y)
Devuelve las coordenadas de la curva de Bézier n-1.
Ejemplo:
Bézier([5, 6, 10, 12], [0 5 -5 -2])
n = longitud ( x) ;
t=linspace(0,1);
xx = 0; YY = 0;
Para k=0: n-1
tmp=nchoosek(n-1,k)*t.^k.*(1-t).^(n-1-k);
xx = xx tmp * x( k 1);
YY = YY tmp * y(k 1);
Fin
Si nargout==2
X = xxY = yy
Fin
h=plot(xx, YY);
Si nargout==1
x = h ;
Fin
Fin
MATLAB proporciona muchas funciones de interpolación y ajuste, que se pueden ver en la ayuda. Hay programas de muestra.
Por ejemplo, POLYFIT
Doc polyfit se puede utilizar para realizar búsquedas. Después de encontrarlo, hay muchas funciones relacionadas. Si miras hacia abajo uno por uno, puedes encontrar lo que necesitas.