• Viernes 1 de Noviembre de 2024, 13:37

Autor Tema:  Dibujar vectores con datos en un fichero.  (Leído 2489 veces)

Estrufi

  • Miembro MUY activo
  • ***
  • Mensajes: 158
    • Ver Perfil
Dibujar vectores con datos en un fichero.
« en: Jueves 12 de Febrero de 2009, 10:57 »
0
Hola!!!! Bueno mi duda es la siguiente:
Tengo un fichero en Matlab con la siguiente forma:

Nombre fichero: Resultadosimag0012.tif_I04_003
t: 13
paso_t: 4
calibracion_t: 1
unidad_t: s
pasox: 32
pasoy: 32
tamaño_region_2^: 7
umbral: 0.500000
calibracion_x: 1.000000
calibracion_y: 1.000000
unidad_l: mm

x   y                dx             dy
16   496   -0.072016    -8.719640   
80   464   -0.786946    0.786946      
80   656   0.456001    -0.456001      
112   272   2.625674    -1.268379      
112   624   -0.361881    0.555926


 Los valores de la taba x,y,dx,dy  son grabados en el fichero de la siguiente forma:

 for fila=1:Q
fprintf(f, '%dt%dt%ft%ft%ft%ft%dn',tabla_desplazamientos(fila,:));
end

 Me gustaria poder visualizar usando "quiver" ó algo así, los dx y dy con respecto a los ejes x e y, Como podría hacer para leer los valores del fichero sin que me supusiera un problema la cabecera del fichero y para visualizarlo???
 Muchisiiiimas gracias! Saludos!

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Dibujar vectores con datos en un fichero.
« Respuesta #1 en: Viernes 13 de Febrero de 2009, 23:03 »
0
saludos


supongo que esto

x y dx dy
16 496 -0.072016 -8.719640
80 464 -0.786946 0.786946
80 656 0.456001 -0.456001
112 272 2.625674 -1.268379
112 624 -0.361881 0.555926

es la salida de tu programa

que generas con
for fila=1:Q
fprintf(f, '%dt%dt%ft%ft%ft%ft%dn',tabla_desplazamientos(fila,:));
end

pero antes de eso la cebecera la debes generar con un printf

pues si entiendo, no quieres que la cabecera aparezca,...

pues elimina el printf de la cebera del archivo

Victor Pasilla Campos
Puebla, Pue

Estrufi

  • Miembro MUY activo
  • ***
  • Mensajes: 158
    • Ver Perfil
Re: Dibujar vectores con datos en un fichero.
« Respuesta #2 en: Martes 17 de Febrero de 2009, 10:39 »
0
Buenas!!!

 no es eso exactamente, kiero decir , yo quiero tener ese archivo de texto con todos esos datos, pero luego quiero visualizar solo la tabla con "quiver", por decirlo de una manera, solo leer los datos que stan debajo de "x", "y", "dx","dy" y crear los ejes etc etc.. Como podría hacer?

ah! sabes si hay alguna manera en matlab de saber si existe un determinado directorio y si no es el caso, crearlo??

 Saludos y gracias!

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Dibujar vectores con datos en un fichero.
« Respuesta #3 en: Martes 17 de Febrero de 2009, 17:09 »
0
Saludos
A lo que me referia es que podias generar el archivo sin la linea de cabecera
x y dx dy
para que solo aparezcan los datos numericos, o generar dos archivos identicos, uno con y otro sin la cabecera.

lo de saber si existe un directorio creo que podrias hacerlo mkdir, que te regresa un 1 si puede crear el directorio y un mensaje de error si no puede, o si existe.

espero te sirva.

Victor Pasilla Campos
Puebla, Mexico

Estrufi

  • Miembro MUY activo
  • ***
  • Mensajes: 158
    • Ver Perfil
Re: Dibujar vectores con datos en un fichero.
« Respuesta #4 en: Martes 17 de Febrero de 2009, 17:52 »
0
Hola,

 Si, ahora lo que estoy haciendo es crear un fichero en el que solo esta la matriz con los datos y me olvido de cabeceras, etc.., Crees que es la mejor opcion ó sería mejor buscar la manera de leer del fichero sólo los datos que me interesan sin tener que crear otro fichero?

 Estoy usando la opcion fscanf , es mejor que textread u otras opciones de lectura??
 
 Una ultima duda, la matriz que creo es de 7 columnas, no? y en el fichero me aparece como tal, pero solo me interesan las 4 primeras columnas,  como podría eliminarlas? porque leer me lee todo el fichero y no veo la manera de leer solo las 4 columnas con fscanf.

 Muchisiiimas muchisimas gracias, Saludos!

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Dibujar vectores con datos en un fichero.
« Respuesta #5 en: Martes 17 de Febrero de 2009, 18:33 »
0
Hola,
creo que es mas simple dejar el archivo sin la cabecera para que lo puedas abrir en otro programa sin problemas

si lo quieres volver a leer en matlab no hay problema porque la linea del encabezado la puedes leer con un scanf como texto,
y los datos con otra scanf pero como datos numéricos

puedes leer las 7 columnas pero despues separarlas en vectores y eliminar los vectores que no necesitas por ejemplo el siguiente
script abre un archivo con 2 columnas lo asigna a una matriz a y luego de la matriz a separo las columnas en los vectores Temp y res


fid = fopen('resistencias.txt');
a = fscanf(fid,'%d %d',[2 inf]);
Temp=a(1,:);
res=a(2,:);
plot(Temp,res);
grid on;

espero te sirva.

Victor Pasilla Campos
Puebla, Pue

Estrufi

  • Miembro MUY activo
  • ***
  • Mensajes: 158
    • Ver Perfil
Re: Dibujar vectores con datos en un fichero.
« Respuesta #6 en: Jueves 19 de Febrero de 2009, 18:08 »
0
ok, Ya lo he conseguido grabando solo la matriz despues de crear el otro fichero, Otra duda, Cual es la mejor manera de usar Quiver cuando tengo una matriz:

  matriz =

   16.0000  496.0000   -0.0017    0.5740
   48.0000  432.0000    0.0505    0.1444
   80.0000  400.0000   -0.0059   -0.0614
   80.0000  432.0000   -0.0256   -0.0999
   80.0000  464.0000    0.0029    0.0196
   80.0000  656.0000   -0.0288    0.0356
  112.0000  624.0000    0.0747   -0.0265

 Donde la primera columna son las "x", la segunda las "y", y la tercera y cuarta los "dx" (desplazamientos en x) y "dy" (desplazamientos en y) respectivamente de una imagen que se representa con una matriz de  736 puntos en la "y"  192 en las "x"?
lo digo por eso de centrarla y esas cosas.

 Muchisimas gracias.

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Dibujar vectores con datos en un fichero.
« Respuesta #7 en: Viernes 20 de Febrero de 2009, 00:34 »
0
saludos.

no conozco quiver, si pudieras decirme que hace y que necesitas hacer con tus matrices par aque te diga como te convendria guardarlas


Victor Pasilla Campos
Puebla, Pue.

Estrufi

  • Miembro MUY activo
  • ***
  • Mensajes: 158
    • Ver Perfil
Re: Dibujar vectores con datos en un fichero.
« Respuesta #8 en: Viernes 20 de Febrero de 2009, 10:09 »
0
Hola! T cuento:

Hay una forma alternativa de quiver:
quiver(X,Y,U,V) donde X,Y,U,V son vectores (todos ellos con el mismo número de elementos) con las cordenadas (X,Y) de cada punto en el
que se ha de dibujar un vector y con los coordenadas (U,V) del  vector a dibujar en ese punto i-ésimo.
Con los datos ejemplo:
M=[ 16.0000 , 496.0000 , -0.0189 , 5.0863;
48.0000 , 432.0000 , 0.5536 , 1.2800;
80.0000 ,400.0000 , -0.0649 , -0.5445;
80.0000 ,432.0000 , -0.2810 , -0.8853;
80.0000 , 464.0000 , 0.0319 , 0.1734;
80.0000 ,656.0000 , -0.3158 , 0.3158;
112.0000 , 624.0000 , 0.8195 , -0.2349]
 
quiver(M(:,1),M(:,2),M(:,3),M(:,4))

Pero quedan cosas muy raras, como te dije en el mensaje anterior, la x llega a 192 puntos, y la y a 600 y pico, no recuerdo ahora el pico....lo que queria es utilizar las opciones y hacer gracias coherentes.

 Saludos y gracias!