Effacer les filtres
Effacer les filtres

How to read a text file?

1 vue (au cours des 30 derniers jours)
Jisu Yang
Jisu Yang le 5 Juin 2019
Commenté : Jisu Yang le 5 Juin 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

Réponse acceptée

Walter Roberson
Walter Roberson le 5 Juin 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 commentaires
Walter Roberson
Walter Roberson le 5 Juin 2019
Node_number = nls(:,1);
dof = nls(:,2);
specified_disp = nls(:,3);
Jisu Yang
Jisu Yang le 5 Juin 2019
Thanks a lot :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by