当前位置:网站首页>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 .
边栏推荐
- Adjustable DC power supply based on LM317
- HDU 4912 paths on the tree (lca+)
- Realization of epoll reactor model
- 嵌入式常用计算神器EXCEL,欢迎各位推荐技巧,以保持文档持续更新,为其他人提供便利
- Why rdd/dataset is needed in spark
- Bat script learning (I)
- Management background --1 Create classification
- Broadcast variables and accumulators in spark
- Solve project cross domain problems
- 记一次清理挖矿病毒的过程
猜你喜欢
2020 Bioinformatics | GraphDTA: predicting drug target binding affinity with graph neural networks
Persistence / caching of RDD in spark
2021 geometry deep learning master Michael Bronstein long article analysis
GPS from getting started to giving up (XV), DCB differential code deviation
The golden age of the U.S. technology industry has ended, and there have been constant lamentations about chip sales and 30000 layoffs
C # realizes crystal report binding data and printing 4-bar code
zabbix 代理服务器 与 zabbix-snmp 监控
Xiaoman network model & http1-http2 & browser cache
Embedded common computing artifact excel, welcome to recommend skills to keep the document constantly updated and provide convenience for others
Write a rotation verification code annotation gadget with aardio
随机推荐
MongoDB(三)——CRUD
十一、服务介绍及端口
Kohana database
Persistence / caching of RDD in spark
Maximum product of three numbers in question 628 of Li Kou
[sciter]: encapsulate the notification bar component based on sciter
GPS从入门到放弃(十七) 、对流层延时
用aardio写一个旋转验证码标注小工具
Record the process of cleaning up mining viruses
【sdx62】WCN685X将bdwlan.bin和bdwlan.txt相互转化操作方法
Aggregate function with key in spark
[asp.net core] set the format of Web API response data -- formatfilter feature
bat脚本学习(一)
LeetCode刷题(十一)——顺序刷题51至55
C # réalise la liaison des données du rapport Crystal et l'impression du Code à barres 4
解决项目跨域问题
Problems in the process of opencv300 cmake generating project
Oracle-控制文件及日志文件的管理
11、 Service introduction and port
zabbix 代理服务器 与 zabbix-snmp 监控