当前位置:网站首页>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 .
边栏推荐
- GNN, please deepen your network layer~
- HDR image reconstruction from a single exposure using deep CNNs阅读札记
- GPS from getting started to giving up (XV), DCB differential code deviation
- UNI-Admin基础框架怎么关闭创建超级管理员入口?
- HDU 4912 paths on the tree (lca+)
- Intelligent online customer service system source code Gofly development log - 2 Develop command line applications
- GPS from entry to abandonment (XIV), ionospheric delay
- [sdx62] wcn685x will bdwlan Bin and bdwlan Txt mutual conversion operation method
- [Yu Yue education] reference materials for surgical skills teaching in Tongji University
- Insert sort and Hill sort
猜你喜欢
The golden age of the U.S. technology industry has ended, and there have been constant lamentations about chip sales and 30000 layoffs
2500个常用中文字符 + 130常用中英文字符
CCNA-思科网络 EIGRP协议
C#實現水晶報錶綁定數據並實現打印4-條形碼
微信红包封面小程序源码-后台独立版-带测评积分功能源码
ZABBIX proxy server and ZABBIX SNMP monitoring
Why rdd/dataset is needed in spark
二叉(搜索)树的最近公共祖先 ●●
Shell product written examination related
华为在多个行业同时出击,吓人的技术让欧美企业瑟瑟发抖
随机推荐
bat脚本学习(一)
GPS從入門到放弃(十三)、接收機自主完好性監測(RAIM)
GPS从入门到放弃(十九)、精密星历(sp3格式)
GNN, please deepen your network layer~
Codeforces Round #274 (Div. 2) –A Expression
Some problems about the use of char[] array assignment through scanf..
CCNA-思科网络 EIGRP协议
微信红包封面小程序源码-后台独立版-带测评积分功能源码
Management background --2 Classification list
lora同步字设置
Leveldb source code analysis series - main process
Record the process of cleaning up mining viruses
Depth first traversal (DFS) and breadth first traversal (BFS)
A Mexican airliner bound for the United States was struck by lightning after taking off and then returned safely
[sdx62] wcn685x will bdwlan Bin and bdwlan Txt mutual conversion operation method
设置状态栏样式Demo
11、 Service introduction and port
Checkpoint of RDD in spark
解决项目跨域问题
GPS从入门到放弃(十六)、卫星时钟误差和卫星星历误差