当前位置:网站首页>Data processing skills (7): MATLAB reads the data in the text file TXT with mixed digital strings
Data processing skills (7): MATLAB reads the data in the text file TXT with mixed digital strings
2022-07-06 22:12:00 【Entertainment first 2091】
MATLAB Read text files with mixed numeric strings txt Data in
The goal is
Extract the data in the text below in multiple arrays
Introduce
It was introduced before in txt In the text , The content is in the case of regular columns , You can refer to : Data processing skills (5):MATLAB Read txt Data in . The last introduction mainly deals with the following two figures , Arranged in columns .
This time, the data is more complex , Read this article directly , Each column is not so neat . It mainly deals with three situations : Pure number 、 character + Numbers 、 character + Numbers + character + The situation of numbers .
① Pure digital situation
Text file to be read :
Determine the file path
Judge whether the input text file path is correct , If you enter an incorrect file name , Will prompt “ Wrong confidence + File opening failure .” A hint of .
After entering the correct file path , End of reading data , There will be “ Successfully read file data ” A hint of .
matlab The result of reading data
Open... In the workspace mdata, double-click mdata Of data Variable , You can see the read pure digital data .
because matlab The table of displays by default 4 Decimal place , So it looks different . actually matlab The calculation does not just show 4 Decimal place , It can be calculated normally .
Code block
%% purenum
% establish data Array
mdata.data = [];
FileLoc = "purenum.txt"; % The path where the text file is located , If in the same folder , Just write the file name
[datafid,datamess] = fopen(FileLoc,"r"); % open the text file , Read only mode on
if datafid==-1
% Successfully opened , Returns a non negative number ; Open failed, return -1
disp(datamess);
disp(" File opening failure .");
else
tline = fgets(datafid); % Read the first line first
while tline~=-1 % When a row of data is -1, Note that all lines of the file are traversed
data123 = sscanf(tline,'%f',3); % Find the point coordinates ( Serial number ,x,y,z), Remember to transpose
mdata.data=[mdata.data;data123']; % Stored in array
tline = fgets(datafid); % iteration , Read the next line
end
fclose(datafid); % Close file
disp(" Successfully read file data ."); % Tips
end
② The beginning of the text , The situation after the number
Text file to be read
matlab The result of reading data
Code block
%% charnum
% Create three arrays
mdata.VArray = [];
mdata.rgb = [];
mdata.point = [];
FileLoc = "charnum2.txt"; % The path where the text file is located , If in the same folder , Just write the file name
[datafid,datamess] = fopen(FileLoc,"r"); % open the text file , Read only mode on
if datafid==-1
% Successfully opened , Returns a non negative number ; Open failed, return -1
disp(datamess);
disp(" File opening failure .");
else
tline = fgets(datafid); % Read the first line first
while tline~=-1 % When a row of data is -1, Note that all lines of the file are traversed
% Judge the first word at the beginning of the line
[ln,~,~,n] = sscanf(tline,'%s',1); % Process this row of data
if ln=="Vertex"
tline1=tline(n:end); % truncation - Delete Vertex
Vxyz = sscanf(tline1,'%f',3); % Find the point coordinates ( Serial number ,x,y,z), Remember to transpose
mdata.VArray=[mdata.VArray;Vxyz']; % Stored in array
end
if ln=="rgb"
tline1=tline(n:end); % truncation - Delete Vertex
Vxyz = sscanf(tline1,'%f',3); % Find the point coordinates ( Serial number ,x,y,z), Remember to transpose
mdata.rgb=[mdata.rgb;Vxyz']; % Stored in array
end
if ln=="point"
tline1=tline(n:end); % truncation - Delete Vertex
Vxyz = sscanf(tline1,'%f',3); % Find the point coordinates ( Serial number ,x,y,z), Remember to transpose
mdata.point=[mdata.point;Vxyz']; % Stored in array
end
tline = fgets(datafid); % iteration
end
fclose(datafid); % Close file
disp(" Successfully read file data ."); % Tips
end
③ A line of words mixed with numbers
Files to read :
matlab Read data results :
Code block
%% charnumcharnum
% Create three arrays
mdata.VArray = [];
mdata.rgb = [];
mdata.point = [];
FileLoc = "charnumcharnum.txt"; % The path where the text file is located , If in the same folder , Just write the file name
[datafid,datamess] = fopen(FileLoc,"r"); % open the text file , Read only mode on
if datafid==-1
% Successfully opened , Returns a non negative number ; Open failed, return -1
disp(datamess);
disp(" File opening failure .");
else
tline = fgets(datafid); % Read the first line first
while tline~=-1 % When a row of data is -1, Note that all lines of the file are traversed
% Judge the first word at the beginning of the line
[ln,~,~,n] = sscanf(tline,'%s',1); % Process this row of data
if ln=="Vertex"
tline1=tline(n:end); % truncation - Delete Vertex
Vxyz = sscanf(tline1,'%f',3); % Find the point coordinates ( Serial number ,x,y,z), Remember to transpose
mdata.VArray=[mdata.VArray;Vxyz']; % Stored in array
% look for rgb
k1 = strfind(tline, 'rgb');
if k1>0
k1=k1+3; % Find and delete rgb Last position
tline1=tline(k1:end);
rgb = sscanf(tline1,'%f',3); % find rgb
mdata.rgb=[mdata.rgb;rgb']; % Stored in an array
end
% look for point
k2 = strfind(tline, 'point');
if k2>0
k2=k2+5; % Find and delete point Last position
tline2=tline(k2:end);
point = sscanf(tline2,'%f',3); % find point
mdata.point=[mdata.point;point']; % Stored in an array
end
end
tline = fgets(datafid); % iteration
end
fclose(datafid); % Close file
disp(" Successfully read file data ."); % Tips
end
ending
Through this introduction , It can be used very quickly matlab Extract data from text files , For follow-up matlab Handle . combination Data processing skills (5):MATLAB Read txt Data in It should be able to solve many problems of reading data .
边栏推荐
- Codeforces Round #274 (Div. 2) –A Expression
- Unity3d Learning Notes 6 - GPU instantiation (1)
- GNN, please deepen your network layer~
- [Chongqing Guangdong education] Tianjin urban construction university concrete structure design principle a reference
- 2021 geometry deep learning master Michael Bronstein long article analysis
- 美国科技行业结束黄金时代,芯片求售、裁员3万等哀声不断
- Basic introduction of figure
- 2022年6月国产数据库大事记-墨天轮
- [sciter]: encapsulate the notification bar component based on sciter
- 【sciter Bug篇】多行隐藏
猜你喜欢
[asp.net core] set the format of Web API response data -- formatfilter feature
Common sense: what is "preservation" in insurance?
2021 geometry deep learning master Michael Bronstein long article analysis
zabbix 代理服务器 与 zabbix-snmp 监控
GPS from entry to abandonment (XVII), tropospheric delay
【sciter】: 基于 sciter 封装通知栏组件
Management background --2 Classification list
Barcodex (ActiveX print control) v5.3.0.80 free version
Method return value considerations
GPS从入门到放弃(十六)、卫星时钟误差和卫星星历误差
随机推荐
Realization of epoll reactor model
Codeforces Round #274 (Div. 2) –A Expression
【MySQL】Online DDL详解
What is the RDD operator in spark
Insert sort and Hill sort
【sciter】: 基于 sciter 封装通知栏组件
GPS从入门到放弃(十六)、卫星时钟误差和卫星星历误差
AI 企业多云存储架构实践 | 深势科技分享
GPS from entry to abandonment (XVII), tropospheric delay
Xiaoman network model & http1-http2 & browser cache
Solve project cross domain problems
CCNA-思科网络 EIGRP协议
GNN, please deepen your network layer~
GPS du début à l'abandon (XIII), surveillance autonome de l'intégrité du récepteur (raim)
【sciter Bug篇】多行隐藏
How does the uni admin basic framework close the creation of super administrator entries?
20 large visual screens that are highly praised by the boss, with source code templates!
GPS从入门到放弃(二十)、天线偏移
小满网络模型&http1-http2 &浏览器缓存
Wechat red envelope cover applet source code - background independent version - source code with evaluation points function