Edit Textfile for analysis
1 次查看(过去 30 天)
显示 更早的评论
Hi, I here by attached text file. I want the text file to be read as the following manner. Any help would be appreciated. Thank you
*Heading
** Job name: Job-1 Model name: Model-1
** Generated by: Abaqus/CAE 6.14-5
*Preprint, echo=NO, model=NO, history=NO, contact=NO
**
** PARTS
**
*Part, name=rect
*Node
1, -0.375, -0.125
2, -0.427631587, -0.125
3, -0.480263144, -0.125
*Element, type=CPS4
1, 1, 2, 22, 21
2, 2, 3, 23, 22
3, 3, 4, 24, 23
4, 4, 5, 25, 24
*End Part
**
2 个评论
采纳的回答
Rik
2021-1-13
编辑:Rik
2021-1-13
You can get my readfile function from the FEX. If you are using R2017a or later, you can also get it through the AddOn-manager.
The readlines function was introduced in R2020b and will work similar to readfile (except it will read to a string instead of a cell array of char arrays).
data=readfile('https://www.mathworks.com/matlabcentral/answers/uploaded_files/486763/aba.txt');
if isempty(data{end}),data(end)=[];end %strip trailing empty line if the file ended with a newline
for n=1:numel(data)
if ~strcmp(data{n}(1),'*')
str=data{n};
%trim leading/trailing whitespace
str=strtrim(str);
%trim internal double spaces
removed_double_spaces=inf;
while removed_double_spaces~=0
length1=length(str);
str=strrep(str,' ',' ');
length2=length(str);
removed_double_spaces=length1-length2;
end
%store back to cell array
data{n}=str;
end
end
fprintf('%s\n',data{:})
6 个评论
更多回答(1 个)
Mathieu NOE
2021-1-13
ok
so my 2 cent suggestion to make that array looks nicer -
lines = readlines('aba.txt','WhitespaceRule','trim');
ll_out = strings; % init string array
for ci = 1:numel(lines)
ll = lines(ci,:); % current line
if ~startsWith(ll,'*'); % check lines 10 to 20 - here we have to work things out
lldk = strrep(ll,' ',''); % remove all (multiple) blanks inside the char array
ll_out(ci,1) = strrep(lldk,',',', '); % put back one blank after the comma (if really needed)
else % nothing to do except copy the original line
ll_out(ci,1) = ll;
end
end
% save it - and remove the double quote
writematrix(ll_out, 'test.txt',"QuoteStrings",0)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Environment and Settings 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!