Borrar filtros
Borrar filtros

How to read a text file?

1 visualización (últimos 30 días)
Jisu Yang
Jisu Yang el 5 de Jun. de 2019
Comentada: Jisu Yang el 5 de Jun. de 2019
I want load my text file to read.
I want [nodes, elem, C, A, bcs, loads] as an output form and the input file is below.
filename = uigetfile('*.txt','Select the inpuf file');
[nodes,elems,C,A,bcs,loads] = gettrussdata2D(filename);
function[nodes,elems,C,A,bcs,loads] = gettrussdata2D(filename)
..
..
end
<Input text file>
Nodes: (x,y)
0.0 0.0
2.0 0.0
2.0 2.0
0.0 0.0
Elements: (Node1 Node2),E,A
1 2 2e11 1e-5
1 3 2e11 1e-5
1 4 2e11 1e-5
4 3 2e11 1e-5
4 2 2e11 1e-5
2 3 2e11 1e-5
BCs (Node_number dof specified_disp)
2 1 0
2 2 0
3 1 0
3 2 0
Nodal loads (Node_number dof load)
4 1 2e4
4 2 -4e4

Respuesta aceptada

Walter Roberson
Walter Roberson el 5 de Jun. de 2019
S = fileread(filename);
np = regexp(S, '^Nodes:', 'once', 'lineanchors');
ep = regexp(S, '^Elements:', 'once', 'lineanchors');
bcp = regexp(S, '^BCs', 'once', 'lineanchors');
nlp = regexp(S, '^Nodal loads', 'once', 'lineanchors');
nodes = cell2mat( textscan(S(np : ep-1), '%f %f', 'HeaderLines', 1) );
elements = cell2mat( textscan(S(ep:bcp-1), '%f %f %f %f', 'HeaderLines', 1));
bcs = cell2mat( textscan(S(bcp:nlp-1), '%f %f %f', 'HeaderLines', 1));
nls = cell2mat( textscan(S(nlp:end), '%f %f %f', 'HeaderLines', 1));
  3 comentarios
Walter Roberson
Walter Roberson el 5 de Jun. de 2019
Node_number = nls(:,1);
dof = nls(:,2);
specified_disp = nls(:,3);
Jisu Yang
Jisu Yang el 5 de Jun. de 2019
Thanks a lot :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Symbolic Math Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by