2012-03-30 7 views
8

que tienen diversas parcelas (con hold on) como se muestra en la siguiente figura: enter image description here¿Cómo puedo encontrar la ecuación de un diagrama que conecta puntos de datos en Matlab?

me gustaría saber cómo encontrar las ecuaciones de estas seis curvas en Matlab. Gracias.

+0

Hay un gran número de ecuaciones que se adapten a esas curvas. ¿Sabes algo sobre la relación subyacente? p.ej. ¿Es probable que sea exponencial, cuadrático, etc.? –

+0

No está claro para mí ... ¿Está generando curva de los datos usted mismo o simplemente tiene el gráfico guardado como .fig (supongo que es formato MATLAB)? –

+0

@ Oli: No conozco la relación subyacente. @ Jack_of_All_Trades: Estoy generando curva de los datos yo mismo. – Pupil

Respuesta

2

He encontrado interactive fitting tool en Matlab simple y útil, aunque algo limitado en su alcance:

enter image description here

+0

Lamentablemente, este enlace está muerto. –

+0

Esto parece ser a lo que se refería el afiche: http://www.mathworks.co.uk/help/matlab/data_analysis/interactive-fitting.html – Danny

0

El gráfico anterior parece ser una interpolación lineal. vectores dados X e Y de los datos, en los que X contiene los argumentos y Y los puntos de función, se puede hacer

f = interp1(X, Y, x) 

para obtener el valor interpolados linealmente f (x). Por ejemplo, si los datos son

X = [0 1 2 3 4 5]; 
Y = [0 1 4 9 16 25]; 

continuación

y = interp1(X, Y, 1.5) 

debe darle una idea aproximada de 1.5^2. interp1 coincidirá exactamente con el gráfico, pero podría interesarle operaciones de ajuste de curva más elegantes, como aproximaciones con estrías, etc.

+0

¡Supongo que está preguntando cómo obtener los datos del gráfico primero! –

+0

@richard: Tengo datos que he trazado y mostrado en la pregunta. Quiero averiguar la ecuación de esa trama que no sé. – Pupil

+0

@S_H, solo para ser claros, ¿realmente tiene los datos numéricos que generaron esa trama? La ecuación de la trama, como dije, es lineal (http://en.wikipedia.org/wiki/Linear_interpolation); en otras palabras, "conecta los puntos". Pero esta es una de las muchas formas posibles de convertir los datos discretos en una "curva". Tienes que ser más específico sobre lo que estás buscando. – richard

0

El consejo, aunque podría haber una mejor respuesta, es: trate de ver la tasa de aumento en La curva. Por ejemplo, el cubo es más representativo que el cuadrático si la tasa de aumento parece rápida y encuentra el polinomio y calcula el error de desviación. Para curvas irregulares, puede intentar ajustar con spline. Supongo que también hay una caja de herramientas en matlab para ajuste de spline.

0

¿rxns son las reacciones? En ese caso, tus curvas son probablemente exponenciales. Una función exponencial tiene la forma: y = a*exp(b * x). En su caso, y es el ancho de la zona de mezcla, y x es el tiempo en años. Ahora, todo lo que necesita hacer es ejecutar exponential regression in Matlab para encontrar los valores óptimos de los parámetros a y b, y tendrá sus ecuaciones.

0

Hay una manera de extraer información con el controlador de figura actual (gcf) de su gráfico.

Por ejemplo, se puede obtener la serie que se representa en un gráfico:

% Some figure is created and data are plotted on it 
figure; 
hold on; 
A = [ 1 2 3 4 5 7] % Dummy data 
B = A.*A % Some other dummy data 
plot(A,B); 
plot(A.*3,B-1); 

% Those three lines of code will get you series that were plotted on your graph 
lh=findall(gcf,'type','line'); % Extract the plotted line from the figure handle 
xp=get(lh,'xdata'); % Extract the Xs 
yp=get(lh,'ydata'); % Extract the Ys 

Debe haber otras informaciones que se pueden obtener a partir de la "findall (GCF, ...)" métodos.

Cuestiones relacionadas