2010-01-08 36 views
7

Estoy tratando de hacer un diagrama de dispersión con una línea de mejor ajuste en matlab, puedo obtener un diagrama de dispersión usando scatter (x1, x2) o scatterplot (x1, x2) pero el la opción de ajuste básico está sombreada y lsline devuelve el error 'No se encontraron tipos de línea permitidos. Nada hecho'Línea del diagrama de dispersión del mejor ajuste

Cualquier ayuda sería grande,

Gracias, Jon .

+0

Podría publicar su código exacto? scatter (x1, x2) seguido de lsline funciona bien para mí ... – 3lectrologos

+3

¿Cómo puede ser que esto "no esté relacionado con la programación" ... – Rook

Respuesta

21

lsline solo está disponible en Statistics Toolbox, ¿tiene la caja de herramientas de estadísticas? Una solución más general podría ser usar polyfit.

Debe usar polyfit para ajustar una línea a sus datos. Suponga que tiene algunos datos en y y tiene valores de dominio correspondientes en x, (es decir, tiene datos que se aproximan a y = f(x) para arbitraria f) entonces se puede ajustar una curva lineal como sigue:

p = polyfit(x,y,1); % p returns 2 coefficients fitting r = a_1 * x + a_2 
r = p(1) .* x + p(2); % compute a new vector r that has matching datapoints in x 

% now plot both the points in y and the curve fit in r 
plot(x, y, 'x'); 
hold on; 
plot(x, r, '-'); 
hold off; 

Tenga en cuenta que si desea ajuste un polinomio arbitrario a sus datos, puede hacerlo cambiando el último parámetro de polyfit para que sea la dimensionalidad de curvefit. Supongamos que llamamos esta dimensión d, recibirá de vuelta d+1 coeficientes en p, que representan una conformación polinomio a una estimación de f(x):

f(x) = p(1) * x^d + p(2) * x^(d-1) + ... + p(d)*x + p(d+1) 

Editar, como se señala en un comentario también se puede utilizar para calcular polyvalr , su sintaxis le gustaría como esto:

r = polyval(p, x); 
+6

puede usar ** polyval ** para ayudarlo a evaluar el polinomio – Amro

+0

@Amro I tiene el mismo problema para encontrar la mejor línea de ajuste. ¿Estás seguro de que la respuesta es correcta? No estoy seguro porque creo que si la mejor línea de ajuste se selecciona correctamente, el número de puntos por encima de la línea debe ser igual al número de puntos debajo de la línea, ¿es correcto? No estoy seguro, ¿cuál es tu idea? – Fatime

+0

@MarkElliot ¿cuál es su idea sobre mi comentario anterior? – Fatime

0

Infs, NaNs y imaginaryparts de los números complejos son ignorados en los datos.

Curve Fitting Tool proporciona una interfaz gráfica de usuario flexible en la que puede ajustar de forma interactiva curvas y superficies a datos y gráficos de visualización. Puede:

Crear, trama y comparar varios ataques

Uso regresión lineal o no lineal, interpolación, regresión suavizado local o personalizados ecuaciones

Vista de bondad de ajuste estadísticas, confidenceintervals de visualización y residuos , eliminar valores atípicos y evaluar encaja con validationdata

generar automáticamente el código para el montaje y plottingsurfaces, o exportación se adapta al espacio de trabajo para su posterior análisis

Cuestiones relacionadas