Matlab - Duda al leer un archivo entre paréntesis

 
Vista:
sin imagen de perfil

Duda al leer un archivo entre paréntesis

Publicado por Tamara (2 intervenciones) el 01/08/2016 20:33:30
Buenas a todos:

Estoy aprendiendo a utilizar matlab para realizar mi proyecto fin de carrera y tengo que leer un archivo de que me indica entre paréntesis (Hx,Hy) de esta forma:

(5.000000E-01,0.000000E+00) (5.000000E-01,0.000000E+00)
(5.000000E-01,0.000000E+00) (5.000000E-01,0.000000E+00)
(5.000000E-01,0.000000E+00) (5.000000E-01,0.000000E+00)
(5.000000E-01,0.000000E+00) (5.000000E-01,0.000000E+00)
(5.000000E-01,0.000000E+00) (5.000000E-01,0.000000E+00)
(5.000000E-01,0.000000E+00) (5.000000E-01,0.000000E+00)
(5.000000E-01,0.000000E+00) (5.000000E-01,0.000000E+00)
(5.000000E-01,0.000000E+00) (5.000000E-01,0.000000E+00)

Me gustaría leer por separado Hx y Hy pero no se como hacerlo, he indagado con fscanf pero no consigo dar con ello.

Adjunto tanto la función que he empezado a programar como el archivo que quiero leer.

Muchas gracias de antemano y un saludo.
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Duda al leer un archivo entre paréntesis

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 02/08/2016 21:19:10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
clear
fid1=fopen('M101out.dat','r');
 i=1;
 while 1
 linea = fgetl(fid1);
 if ~ischar(linea),
     break,
 end
 hola1=strfind(linea,char(40));
 hola2=strfind(linea,char(41));
if length(hola1)==2  && length(hola2)==2
     hola3=strfind(linea,char(44));
      Hxx{i,1}=linea(hola1(1):hola2(1));
      Hyy{i,1}=linea(hola1(2):hola2(2));
 
      Hx(i,1)=str2num(linea(hola1(1)+1:hola3(1)-1));
      Hx(i,2)=str2num(linea(hola3(1)+1:hola2(1)-1));
       Hy(i,1)=str2num(linea(hola1(2)+1:hola3(2)-1));
       Hy(i,2)=str2num(linea(hola3(2)+1:hola2(2)-1));
       i=i+1;
end
 end
fclose(fid1);
 Hx, Hy
 Hxx, Hyy


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
>> importacion_de_texto
Hx =
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
 
 
Hy =
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
    0.5000         0
 
 
Hxx =
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
 
 
Hyy =
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'
    '(5.000000E-01,0.000000E+00)'


Saludos.
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
Programador en Matlab
Servicios de programación matlab
[email protected]
El correo es para servicios de programación, toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Duda al leer un archivo entre paréntesis

Publicado por Tamara (2 intervenciones) el 02/08/2016 22:14:39
Muchísimas gracias Jose, me has sido de gran ayuda.
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