Matlab - Lectura de fichero complicada

 
Vista:

Lectura de fichero complicada

Publicado por saneme (3 intervenciones) el 26/06/2013 18:34:49
Hola, estoy bloqueado, necesito generar dos matrices a partir de este fichero.

http://www.ee.washington.edu/research/pstca/pf14/ieee14cdf.txt

estoy un poco desesperado porque me da error continuamente, lo que tengo que hacer es sacar dos matrices

una hasta el -999 (yo creo que esta ahi puesto para poder romper el bucle)

y la otra hasta el siguiente -999 saltando las lineas de texto que hay al principio y en el medio

no tengo sufieciente practica como para hacerlo.

gracias !!!!
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

Lectura de fichero complicada

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 29/06/2013 00:17:40
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
clear all
fid1=fopen('importandodatostexto25.txt','r');
i=1;
while 1
     linea = fgetl(fid1);
     if ~ischar(linea),
         break,
     end
     if any(i>=3 && i<=16)
     C1{i-2,1}=linea;
     end
 
     if  any(i>=19 && i<=38)
     C2{i-18,1}=linea;
     end
 
      i=i+1;
end
fclose(fid1);
C=[C1;C2];
fid2=fopen('exportandodatostexto25_1.txt','w');
for i=1:size(C,1)
      fprintf(fid2,'%s\n',C{i,1});
end
fclose(fid2);
edit('importandodatostexto25.txt');
edit('exportandodatostexto25_1.txt');
celldisp(C1)
C2=cell2mat(C2);
display(C2)



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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
>> importandodatostexto25
 
C1{1} =
 
   1 Bus 1     HV  1  1  3 1.060    0.0      0.0      0.0    232.4   -16.9     0.0  1.060     0.0     0.0   0.0    0.0        0
 
 
C1{2} =
 
   2 Bus 2     HV  1  1  2 1.045  -4.98     21.7     12.7     40.0    42.4     0.0  1.045    50.0   -40.0   0.0    0.0        0
 
 
C1{3} =
 
   3 Bus 3     HV  1  1  2 1.010 -12.72     94.2     19.0      0.0    23.4     0.0  1.010    40.0     0.0   0.0    0.0        0
 
 
C1{4} =
 
   4 Bus 4     HV  1  1  0 1.019 -10.33     47.8     -3.9      0.0     0.0     0.0  0.0       0.0     0.0   0.0    0.0        0
 
 
C1{5} =
 
   5 Bus 5     HV  1  1  0 1.020  -8.78      7.6      1.6      0.0     0.0     0.0  0.0       0.0     0.0   0.0    0.0        0
 
 
C1{6} =
 
   6 Bus 6     LV  1  1  2 1.070 -14.22     11.2      7.5      0.0    12.2     0.0  1.070    24.0    -6.0   0.0    0.0        0
 
 
C1{7} =
 
   7 Bus 7     ZV  1  1  0 1.062 -13.37      0.0      0.0      0.0     0.0     0.0  0.0       0.0     0.0   0.0    0.0        0
 
 
C1{8} =
 
   8 Bus 8     TV  1  1  2 1.090 -13.36      0.0      0.0      0.0    17.4     0.0  1.090    24.0    -6.0   0.0    0.0        0
 
 
C1{9} =
 
   9 Bus 9     LV  1  1  0 1.056 -14.94     29.5     16.6      0.0     0.0     0.0  0.0       0.0     0.0   0.0    0.19       0
 
 
C1{10} =
 
  10 Bus 10    LV  1  1  0 1.051 -15.10      9.0      5.8      0.0     0.0     0.0  0.0       0.0     0.0   0.0    0.0        0
 
 
C1{11} =
 
  11 Bus 11    LV  1  1  0 1.057 -14.79      3.5      1.8      0.0     0.0     0.0  0.0       0.0     0.0   0.0    0.0        0
 
 
C1{12} =
 
  12 Bus 12    LV  1  1  0 1.055 -15.07      6.1      1.6      0.0     0.0     0.0  0.0       0.0     0.0   0.0    0.0        0
 
 
C1{13} =
 
  13 Bus 13    LV  1  1  0 1.050 -15.16     13.5      5.8      0.0     0.0     0.0  0.0       0.0     0.0   0.0    0.0        0
 
 
C1{14} =
 
  14 Bus 14    LV  1  1  0 1.036 -16.04     14.9      5.0      0.0     0.0     0.0  0.0       0.0     0.0   0.0    0.0        0
 
 
C2 =
 
   1    2  1  1 1 0  0.01938   0.05917     0.0528     0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   1    5  1  1 1 0  0.05403   0.22304     0.0492     0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   2    3  1  1 1 0  0.04699   0.19797     0.0438     0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   2    4  1  1 1 0  0.05811   0.17632     0.0340     0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   2    5  1  1 1 0  0.05695   0.17388     0.0346     0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   3    4  1  1 1 0  0.06701   0.17103     0.0128     0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   4    5  1  1 1 0  0.01335   0.04211     0.0        0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   4    7  1  1 1 0  0.0       0.20912     0.0        0     0     0    0 0  0.978     0.0 0.0    0.0     0.0    0.0   0.0
   4    9  1  1 1 0  0.0       0.55618     0.0        0     0     0    0 0  0.969     0.0 0.0    0.0     0.0    0.0   0.0
   5    6  1  1 1 0  0.0       0.25202     0.0        0     0     0    0 0  0.932     0.0 0.0    0.0     0.0    0.0   0.0
   6   11  1  1 1 0  0.09498   0.19890     0.0        0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   6   12  1  1 1 0  0.12291   0.25581     0.0        0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   6   13  1  1 1 0  0.06615   0.13027     0.0        0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   7    8  1  1 1 0  0.0       0.17615     0.0        0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   7    9  1  1 1 0  0.0       0.11001     0.0        0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   9   10  1  1 1 0  0.03181   0.08450     0.0        0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
   9   14  1  1 1 0  0.12711   0.27038     0.0        0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
  10   11  1  1 1 0  0.08205   0.19207     0.0        0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
  12   13  1  1 1 0  0.22092   0.19988     0.0        0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0
  13   14  1  1 1 0  0.17093   0.34802     0.0        0     0     0    0 0  0.0       0.0 0.0    0.0     0.0    0.0   0.0








Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

Lectura de fichero complicada

Publicado por carlos (3 intervenciones) el 10/07/2013 11:58:01
muchas gracias Jose, al final di con un camino que me parece un poco mas sencillo, solo me faltaria transformar las cell a matrices y ya podria trabajar con ello.

mira:

fileID = fopen('dato.txt');
title = textscan(fileID, '%s%20c %f %d %c%[^\n]c',1);
bus_data = textscan(fileID, '%16c %d %s',1);
bus_cards = textscan(fileID, '%4d%12c%d%d %d %f %f %f %f %f %f %f %f %f %f %f %f %d%*[^\n]',bus_data{2});
nada=textscan(fileID,'%[^\n]c',1)
branch_data=textscan(fileID,'%20c %d %[^\n]c',1);
branch_cards=textscan(fileID,'%d %d %d %d %d %d %f %f %f %d %d %d %d %d %f %f %f %f %f %f %f',branch_data{2})
fclose(fileID);
celldisp(title)
celldisp(bus_data)
celldisp(bus_cards)
nada
celldisp(nada)
celldisp(branch_data)
celldisp(branch_cards)

acepto cualquier consejo que quieras darme.

gracias y un saludo
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
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

Lectura de fichero complicada

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/07/2013 14:02:50
Es difícil saber cual es el nivel de conocimientos de matlab del usuario que pregunta. Simplemente yo contesto las preguntas según mi tiempo libre que tengo. Como veras últimamente ya no estoy contestando las preguntas pues no dispongo de mucho tiempo libre.

Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

Lectura de fichero complicada

Publicado por saneme (3 intervenciones) el 16/07/2013 12:15:05
carlos y saneme , somos el mismo, solo que no me di cuenta y puse otro nombre.

:)

mi nivel es de c++, se lo que son condicionales y bucles intento mejorar mi calculo de matrices y utilizar el marth works lo maximo posible para aprender nuevos comandos como es el textscan.

me lleva muchisimo tiempo pero bueno, estoy haciendo el proyecto final de carrera.

un saludo y gracias Jose
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