当前位置:网站首页>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 .
边栏推荐
- GPS from entry to abandonment (XIV), ionospheric delay
- GPS從入門到放弃(十三)、接收機自主完好性監測(RAIM)
- Oracle control file and log file management
- Embedded common computing artifact excel, welcome to recommend skills to keep the document constantly updated and provide convenience for others
- Support multiple API versions in flask
- Sparkshuffle process and Mr shuffle process
- GPS从入门到放弃(二十)、天线偏移
- [daily] win10 system setting computer never sleeps
- Barcodex (ActiveX print control) v5.3.0.80 free version
- OpenCV300 CMake生成project在项目过程中的问题
猜你喜欢
MPLS experiment
Persistence / caching of RDD in spark
2022年6月国产数据库大事记-墨天轮
Management background --2 Classification list
Make menuconfig has a recipe for target 'menuconfig' failed error
[MySQL] online DDL details
LeetCode学习记录(从新手村出发之杀不出新手村)----1
GPS从入门到放弃(十五)、DCB差分码偏差
Huawei has launched attacks in many industries at the same time, and its frightening technology has made European and American enterprises tremble
基于LM317的可调直流电源
随机推荐
GPS从入门到放弃(二十)、天线偏移
HDU 2008 digital statistics
中国1,4-环己烷二甲醇(CHDM)行业调研与投资决策报告(2022版)
LeetCode刷题(十一)——顺序刷题51至55
bat脚本学习(一)
Kohana database
LeetCode学习记录(从新手村出发之杀不出新手村)----1
Mysql相关术语
i.mx6ull搭建boa服务器详解及其中遇到的一些问题
make menuconfig出现recipe for target ‘menuconfig‘ failed错误
2022年6月国产数据库大事记-墨天轮
新入职一家公司需要去实践和注意的内容
11、 Service introduction and port
[sdx62] wcn685x will bdwlan Bin and bdwlan Txt mutual conversion operation method
Write a rotation verification code annotation gadget with aardio
3DMax指定面贴图
Qt | UDP广播通信、简单使用案例
二叉(搜索)树的最近公共祖先 ●●
GPS from getting started to giving up (12), Doppler constant speed
Problems in the process of opencv300 cmake generating project