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
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
0