Matlab - sacar un dato

   
Vista:

sacar un dato

Publicado por Rdolfo Javier (1 intervención) el 13/10/2010 22:29:22
hola como estan, quiero pedirles ayuda
estoy haciedno un programa en matlab, pero no se sacar un dato, mmmm bueno has decuenta que tengo una grafica, vdd y me piden sacar la altura de esa grafica comparada conu na linea como sacar el punto intermeio del cruce de dos lineas, supongan el valor mas alto de la grafica uno es 366 y se intersecciona con un valor dos qque esta a 251, pero no se como sacar el valor de la interseccion.

haber si me entienden, sino les mando un mail con el problema
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Matlab
- Código fuente de Matlab
- Cursos de Matlab
- Temas de Matlab
- Chat de Matlab
información
Códigos de Matlab
- Fixed Pivot
- COORDENADAS CARTESIANAS
- TRIÁNGULO

RE:sacar un dato

Publicado por Kike (304 intervenciones) el 25/10/2010 03:18:14
Dos funciones se intersectan cuando comparten un punto en común. Simplemente hay que igualar las funciones
f1(x) = f2(x)
f1(x) - f2(x) = 0

Con esto encontramos el valor de la abscisa. Para encontrar el valor de la ordenada sólo sustituimos el valor de la abscisa en cualquiera de las funciones, aunque si no me equivoco ya es conocida y es 251 en este caso. Entonces basta con encontrar la abscisa:
f1(x) - 251 = 0

En caso de no conocer la función f1 y tampoco interesa conocerla, entonces yo hago un bucle para encontrar la abscisa en que se intersectan. Comparo dos puntos consecutivos de f1, si un punto es menor o igual que 251 y el siguiente es mayor entonces la intersección se da en ese punto (de manera aproximada), y dejo de comparar con un break.
x = 0:0.01:10;
for n=1:length(f1)-1
if f1(n)<=251 && f1(n+1)>251
abscisa = n;
break;
end
end

Si f2 no es una línea recta cuyos todos puntos son 251 entoces hago la comparación con el valor de f2 para cada abscisa:
x = 0:0.01:10;
for n=1:length(f1)-1
if f1(n)<=f2(n) && f1(n+1)>f2(n)
abscisa = x(n)
ordenada = f1(n)
break;
end
end

Y finalmente grafico los resultados
plot(x,f1) % color azul por default
hold on
plot(x,f2,'g') % color verde
plot(abscisa,ordenada,'ro') % resalto el punto con un círculo rojo pequeño
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar