Matlab - COMO EXTRAER COLUMNAS DE ARCHIVO DE TEXTO CON NUMERO Y CARACTERES

   
Vista:

COMO EXTRAER COLUMNAS DE ARCHIVO DE TEXTO CON NUMERO Y CARACTERES

Publicado por HECTOR (3 intervenciones) el 01/05/2014 09:14:09
Hola a todos tengo un problema para poder crear una matriz A, a partir de un archivo de salida, el cual tiene la siguiente estructuración

HISTORY FOR ELEMENT 1 OF ELEMENT GROUP 1, ANALYSIS SEGMENT 2

BEAM COLUMN ELEMENT (TYPE 02). NODES = 1 6

Step Load Yld. Bending Shear Axial Hinge Acc Plas Hinge Rotation
No. Factor Code Moment Force Force Rotation Positive Negative

1 5.000E-03 I 0 -5.479E+01 -4.905E-01 4.713E+01 0.000E+00 0.000E+00 0.000E+00
J 0 -1.286E+02 4.905E-01 -4.713E+01 0.000E+00 0.000E+00 0.000E+00
2 1.000E-02 I 0 -4.771E+01 -4.656E-01 4.687E+01 0.000E+00 0.000E+00 0.000E+00
J 0 -1.263E+02 4.656E-01 -4.687E+01 0.000E+00 0.000E+00 0.000E+00
3 1.500E-02 I 0 -4.064E+01 -4.406E-01 4.660E+01 0.000E+00 0.000E+00 0.000E+00
.
.
.
764 3.820E+00 I 1 1.571E+04 4.213E+01 -1.286E+02 2.409E-02 2.409E-02 0.000E+00
J 0 3.341E+01 -4.213E+01 1.286E+02 0.000E+00 0.000E+00 0.000E+00

HISTORY FOR ELEMENT 2 OF ELEMENT GROUP 1, ANALYSIS SEGMENT 2

BEAM COLUMN ELEMENT (TYPE 02). NODES = 2 8

Step Load Yld. Bending Shear Axial Hinge Acc Plas Hinge Rotation
No. Factor Code Moment Force Force Rotation Positive Negative

1 5.000E-03 I 0 1.794E+01 9.494E-02 8.864E+01 0.000E+00 0.000E+00 0.000E+00
J 0 1.754E+01 -9.494E-02 -8.864E+01 0.000E+00 0.000E+00 0.000E+00
2 1.000E-02 I 0 2.553E+01 1.240E-01 8.888E+01 0.000E+00 0.000E+00 0.000E+00
J 0 2.083E+01 -1.240E-01 -8.888E+01 0.000E+00 0.000E+00 0.000E+00
3 1.500E-02 I 0 3.312E+01 1.532E-01 8.912E+01 0.000E+00 0.000E+00 0.000E+00
J 0 2.412E+01 -1.532E-01 -8.912E+01 0.000E+00 0.000E+00 0.000E+00
4 2.000E-02 I 0 4.071E+01 1.823E-01 8.935E+01 0.000E+00 0.000E+00 0.000E+00

Lo que me interesa es crear una matriz como de se muestra a continuación:

0 -5.479E+01 -4.905E-01 4.713E+01 0.000E+00 0.000E+00 0.000E+00
0 -1.286E+02 4.905E-01 -4.713E+01 0.000E+00 0.000E+00 0.000E+00
0 -4.771E+01 -4.656E-01 4.687E+01 0.000E+00 0.000E+00 0.000E+00
0 -1.263E+02 4.656E-01 -4.687E+01 0.000E+00 0.000E+00 0.000E+00
0 -4.064E+01 -4.406E-01 4.660E+01 0.000E+00 0.000E+00 0.000E+00
.
.
.
1 1.571E+04 4.213E+01 -1.286E+02 2.409E-02 2.409E-02 0.000E+00
0 3.341E+01 -4.213E+01 1.286E+02 0.000E+00 0.000E+00 0.000E+00

intente con este código

clear all
clc
fid = fopen('col.txt','r');
for i=1:8
borrar=fgetl(fid);
end
C=textscan(fid,'%s %s %s %s %f %f %f %f %f %f',11)
fclose(fid);

pero las filas con la letra J se recorren hasta el Step No., por lo que los valores de esa fila ya no corresponden a lo posición que deseo.

y con este otro

clear all
clc
fid = fopen('col.txt','r');
for i=1:8
borrar=fgetl(fid);
end

C = textscan(fid,'%*d %*f %*c %f %f %f %f %f %f %f','CollectOutput');
fclose(fid);

solo me lee la primer fila.

Espero que me puedan ayudar o darme algunos consejo
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

COMO EXTRAER COLUMNAS DE ARCHIVO DE TEXTO CON NUMERO Y CARACTERES

Publicado por Hector (3 intervenciones) el 01/05/2014 22:12:01
Con este código ya respeta cada columna, pero el problema es que me lee una fila únicamente y necesito que me lea todo el archivo, como hago para que esto suceda??
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
clear all
clc
fid = fopen('col.txt');
for i=1:8
 borrar=fgetl(fid);
end
 %C = textscan(fid,'%d %f %c %d %f %f %f %f %f %f','Delimiter', '\b','CollectOutput', true);
 C = textscan(fid,'%d %f %c %d %f %f %f %f %f %f','Delimiter', '\b');
fclose(fid);
 
>> C
 
C =
 
    [1]    [0.0050]    'I'    [0]    [-54.7900]    [-0.4905]    [47.1300]    [0]    [0]    [0]
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