How to read a text file?
조회 수: 1 (최근 30일)
이전 댓글 표시
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
댓글 수: 0
채택된 답변
Walter Roberson
2019년 6월 5일
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
Walter Roberson
2019년 6월 5일
Node_number = nls(:,1);
dof = nls(:,2);
specified_disp = nls(:,3);
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!