当前位置:网站首页>Matlab extracts numerical data from irregular txt files (simple and practical)
Matlab extracts numerical data from irregular txt files (simple and practical)
2022-07-03 11:17:00 【Thanks to gravity】
Catalog
One 、 A synopsis of antecedents
my txt The text data is shown in the figure ( part ), It is the terrain data of a place and the location data of scenic spots :
txt It includes values 、 written words 、 Chinese and English brackets 、 Chinese and English commas 、 Space, etc , In short, the type is very complex , Use the usual load、importdata、txtscan And other functions are not easy to handle .
Here is a quick and practical method .
Two 、MATLAB Import data
In the past, we used to read files directly from utility code , This function is rarely used , But this function is very easy to use .( Yes, of course , In bulk 、 It is recommended to use code to read formatted files ).
2.1 Data loading
Click directly to finish :
2.2 Set the separator
txt Although the content in is relatively chaotic , But there is still a separation between data , Such as the blank space 、 Comma or something . There are many and disordered separators in my data , The specific Settings are as follows :
You can set the separator of data here , The custom separator supports any keyboard input ( Chinese characters 、 punctuation 、 Line breaks and so on ), It can be set according to the actual situation .
According to the separator set ,txt The document is divided as follows :
2.3 Set the output format
This function can output table、 matrix 、cell、 String array and other formats , Here I choose numerical matrix .
about txt Which cannot be imported in cell, You can set the replacement value , Such as Nan( You can customize ), You can also delete that row or column .
After setting the output conditions , Make sure the data to be output is selected ( Check the box or ctrl A Future generations ), Such as 2.2 Section , Blue is the output value , And yellow is replaced by NaN.
2.4 Generate scripts or functions
When exporting , You can generate scripts or functions , Only applicable to the current file . Subsequent operations on this file , It can be achieved by using code .
my txt The functions corresponding to the file are as follows :
function Adata = importfile(filename, dataLines)
%IMPORTFILE1 Import data from a text file
% ADATA = IMPORTFILE1(FILENAME) Read text file FILENAME Data in the default selection range . Return numeric data .
%
% ADATA = IMPORTFILE1(FILE, DATALINES) Read text files at specified line intervals FILENAME
% Data in . For discontinuous line spacing , Please put DATALINES Specify as positive integer scalar or N×2 Positive integer scalar array .
%
% Example :
% Adata = importfile1("G:\ Information \Now\Part_time_job\ modeling 800\A_data.txt", [1, Inf]);
%
% See also READTABLE.
%
% from MATLAB On 2022-06-30 18:16:29 Automatic generation
%% Input processing
% If you don't specify dataLines, Please define the default range
if nargin < 2
dataLines = [1, Inf];
end
%% Set import options and import data
opts = delimitedTextImportOptions("NumVariables", 445);
% Specify the range and separator
opts.DataLines = dataLines;
opts.Delimiter = [" ", "(", ")", ",", ",-", "(", ")", ","];
% Specify the column name and type
opts.VariableNames = ["h0", "VarName2", "VarName3", "VarName4", "VarName5", "VarName6", "VarName7", "VarName8", "VarName9", "VarName10", "VarName11", "VarName12", "VarName13", "VarName14", "VarName15", "VarName16", "VarName17", "VarName18", "VarName19", "VarName20", "VarName21", "VarName22", "VarName23", "VarName24", "VarName25", "VarName26", "VarName27", "VarName28", "VarName29", "VarName30", "VarName31", "VarName32", "VarName33", "VarName34", "VarName35", "VarName36", "VarName37", "VarName38", "VarName39", "VarName40", "VarName41", "VarName42", "VarName43", "VarName44", "VarName45", "VarName46", "VarName47", "VarName48", "VarName49", "VarName50", "VarName51", "VarName52", "VarName53", "VarName54", "VarName55", "VarName56", "VarName57", "VarName58", "VarName59", "VarName60", "VarName61", "VarName62", "VarName63", "VarName64", "VarName65", "VarName66", "VarName67", "VarName68", "VarName69", "VarName70", "VarName71", "VarName72", "VarName73", "VarName74", "VarName75", "VarName76", "VarName77", "VarName78", "VarName79", "VarName80", "VarName81", "VarName82", "VarName83", "VarName84", "VarName85", "VarName86", "VarName87", "VarName88", "VarName89", "VarName90", "VarName91", "VarName92", "VarName93", "VarName94", "VarName95", "VarName96", "VarName97", "VarName98", "VarName99", "VarName100", "VarName101", "VarName102", "VarName103", "VarName104", "VarName105", "VarName106", "VarName107", "VarName108", "VarName109", "VarName110", "VarName111", "VarName112", "VarName113", "VarName114", "VarName115", "VarName116", "VarName117", "VarName118", "VarName119", "VarName120", "VarName121", "VarName122", "VarName123", "VarName124", "VarName125", "VarName126", "VarName127", "VarName128", "VarName129", "VarName130", "VarName131", "VarName132", "VarName133", "VarName134", "VarName135", "VarName136", "VarName137", "VarName138", "VarName139", "VarName140", "VarName141", "VarName142", "VarName143", "VarName144", "VarName145", "VarName146", "VarName147", "VarName148", "VarName149", "VarName150", "VarName151", "VarName152", "VarName153", "VarName154", "VarName155", "VarName156", "VarName157", "VarName158", "VarName159", "VarName160", "VarName161", "VarName162", "VarName163", "VarName164", "VarName165", "VarName166", "VarName167", "VarName168", "VarName169", "VarName170", "VarName171", "VarName172", "VarName173", "VarName174", "VarName175", "VarName176", "VarName177", "VarName178", "VarName179", "VarName180", "VarName181", "VarName182", "VarName183", "VarName184", "VarName185", "VarName186", "VarName187", "VarName188", "VarName189", "VarName190", "VarName191", "VarName192", "VarName193", "VarName194", "VarName195", "VarName196", "VarName197", "VarName198", "VarName199", "VarName200", "VarName201", "VarName202", "VarName203", "VarName204", "VarName205", "VarName206", "VarName207", "VarName208", "VarName209", "VarName210", "VarName211", "VarName212", "VarName213", "VarName214", "VarName215", "VarName216", "VarName217", "VarName218", "VarName219", "VarName220", "VarName221", "VarName222", "VarName223", "VarName224", "VarName225", "VarName226", "VarName227", "VarName228", "VarName229", "VarName230", "VarName231", "VarName232", "VarName233", "VarName234", "VarName235", "VarName236", "VarName237", "VarName238", "VarName239", "VarName240", "VarName241", "VarName242", "VarName243", "VarName244", "VarName245", "VarName246", "VarName247", "VarName248", "VarName249", "VarName250", "VarName251", "VarName252", "VarName253", "VarName254", "VarName255", "VarName256", "VarName257", "VarName258", "VarName259", "VarName260", "VarName261", "VarName262", "VarName263", "VarName264", "VarName265", "VarName266", "VarName267", "VarName268", "VarName269", "VarName270", "VarName271", "VarName272", "VarName273", "VarName274", "VarName275", "VarName276", "VarName277", "VarName278", "VarName279", "VarName280", "VarName281", "VarName282", "VarName283", "VarName284", "VarName285", "VarName286", "VarName287", "VarName288", "VarName289", "VarName290", "VarName291", "VarName292", "VarName293", "VarName294", "VarName295", "VarName296", "VarName297", "VarName298", "VarName299", "VarName300", "VarName301", "VarName302", "VarName303", "VarName304", "VarName305", "VarName306", "VarName307", "VarName308", "VarName309", "VarName310", "VarName311", "VarName312", "VarName313", "VarName314", "VarName315", "VarName316", "VarName317", "VarName318", "VarName319", "VarName320", "VarName321", "VarName322", "VarName323", "VarName324", "VarName325", "VarName326", "VarName327", "VarName328", "VarName329", "VarName330", "VarName331", "VarName332", "VarName333", "VarName334", "VarName335", "VarName336", "VarName337", "VarName338", "VarName339", "VarName340", "VarName341", "VarName342", "VarName343", "VarName344", "VarName345", "VarName346", "VarName347", "VarName348", "VarName349", "VarName350", "VarName351", "VarName352", "VarName353", "VarName354", "VarName355", "VarName356", "VarName357", "VarName358", "VarName359", "VarName360", "VarName361", "VarName362", "VarName363", "VarName364", "VarName365", "VarName366", "VarName367", "VarName368", "VarName369", "VarName370", "VarName371", "VarName372", "VarName373", "VarName374", "VarName375", "VarName376", "VarName377", "VarName378", "VarName379", "VarName380", "VarName381", "VarName382", "VarName383", "VarName384", "VarName385", "VarName386", "VarName387", "VarName388", "VarName389", "VarName390", "VarName391", "VarName392", "VarName393", "VarName394", "VarName395", "VarName396", "VarName397", "VarName398", "VarName399", "VarName400", "VarName401", "VarName402", "VarName403", "VarName404", "VarName405", "VarName406", "VarName407", "VarName408", "VarName409", "VarName410", "VarName411", "VarName412", "VarName413", "VarName414", "VarName415", "VarName416", "VarName417", "VarName418", "VarName419", "VarName420", "VarName421", "VarName422", "VarName423", "VarName424", "VarName425", "VarName426", "VarName427", "VarName428", "VarName429", "VarName430", "VarName431", "VarName432", "VarName433", "VarName434", "VarName435", "VarName436", "VarName437", "VarName438", "VarName439", "VarName440", "VarName441", "VarName442", "VarName443", "VarName444", "VarName445"];
opts.VariableTypes = ["double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double"];
% Specify file level properties
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
% Specify variable properties
opts = setvaropts(opts, ["h0", "VarName10", "VarName13", "VarName16", "VarName19", "VarName22", "VarName25", "VarName28", "VarName31", "VarName34", "VarName37", "VarName40", "VarName43", "VarName46", "VarName49", "VarName52", "VarName55", "VarName58", "VarName61", "VarName64", "VarName67", "VarName70", "VarName73", "VarName76", "VarName79", "VarName82", "VarName85", "VarName88", "VarName91", "VarName94", "VarName97", "VarName100", "VarName103", "VarName106", "VarName109", "VarName112", "VarName115", "VarName118", "VarName121", "VarName124", "VarName127", "VarName130", "VarName133", "VarName136", "VarName139", "VarName142", "VarName145", "VarName148", "VarName151", "VarName154", "VarName157", "VarName160", "VarName163", "VarName166", "VarName169", "VarName172", "VarName175", "VarName178", "VarName181", "VarName184", "VarName187", "VarName190", "VarName193", "VarName196", "VarName199", "VarName202", "VarName205", "VarName208", "VarName211", "VarName214", "VarName217", "VarName220", "VarName223", "VarName226", "VarName229", "VarName232", "VarName235", "VarName238", "VarName241", "VarName244", "VarName247", "VarName250", "VarName253", "VarName256", "VarName259", "VarName262", "VarName265", "VarName268", "VarName271", "VarName274", "VarName277", "VarName280", "VarName283", "VarName286", "VarName289", "VarName292", "VarName295", "VarName298", "VarName301", "VarName304", "VarName307", "VarName310", "VarName313", "VarName316", "VarName319", "VarName322", "VarName325", "VarName328", "VarName331", "VarName334", "VarName337", "VarName340", "VarName343", "VarName346", "VarName349", "VarName352", "VarName355", "VarName358", "VarName361", "VarName364", "VarName367", "VarName370", "VarName373", "VarName376", "VarName379", "VarName382", "VarName385", "VarName388", "VarName391", "VarName394", "VarName397", "VarName400", "VarName403", "VarName406", "VarName409", "VarName412", "VarName415", "VarName418", "VarName421", "VarName424", "VarName427", "VarName430", "VarName433", "VarName436", "VarName439", "VarName442", "VarName445"], "TrimNonNumeric", true);
opts = setvaropts(opts, ["h0", "VarName10", "VarName13", "VarName16", "VarName19", "VarName22", "VarName25", "VarName28", "VarName31", "VarName34", "VarName37", "VarName40", "VarName43", "VarName46", "VarName49", "VarName52", "VarName55", "VarName58", "VarName61", "VarName64", "VarName67", "VarName70", "VarName73", "VarName76", "VarName79", "VarName82", "VarName85", "VarName88", "VarName91", "VarName94", "VarName97", "VarName100", "VarName103", "VarName106", "VarName109", "VarName112", "VarName115", "VarName118", "VarName121", "VarName124", "VarName127", "VarName130", "VarName133", "VarName136", "VarName139", "VarName142", "VarName145", "VarName148", "VarName151", "VarName154", "VarName157", "VarName160", "VarName163", "VarName166", "VarName169", "VarName172", "VarName175", "VarName178", "VarName181", "VarName184", "VarName187", "VarName190", "VarName193", "VarName196", "VarName199", "VarName202", "VarName205", "VarName208", "VarName211", "VarName214", "VarName217", "VarName220", "VarName223", "VarName226", "VarName229", "VarName232", "VarName235", "VarName238", "VarName241", "VarName244", "VarName247", "VarName250", "VarName253", "VarName256", "VarName259", "VarName262", "VarName265", "VarName268", "VarName271", "VarName274", "VarName277", "VarName280", "VarName283", "VarName286", "VarName289", "VarName292", "VarName295", "VarName298", "VarName301", "VarName304", "VarName307", "VarName310", "VarName313", "VarName316", "VarName319", "VarName322", "VarName325", "VarName328", "VarName331", "VarName334", "VarName337", "VarName340", "VarName343", "VarName346", "VarName349", "VarName352", "VarName355", "VarName358", "VarName361", "VarName364", "VarName367", "VarName370", "VarName373", "VarName376", "VarName379", "VarName382", "VarName385", "VarName388", "VarName391", "VarName394", "VarName397", "VarName400", "VarName403", "VarName406", "VarName409", "VarName412", "VarName415", "VarName418", "VarName421", "VarName424", "VarName427", "VarName430", "VarName433", "VarName436", "VarName439", "VarName442", "VarName445"], "ThousandsSeparator", ",");
% Import data
Adata = readtable(filename, opts);
%% Convert to output type
Adata = table2array(Adata);
end
2.5 Further processing of data
Although the above method will be very good txt The data in is read , The data also contains always null values . Can be further extracted : Different heights , The corresponding longitude and latitude 、 The scenic spot data is extracted with the following code :
close all;
clear;
clc;
Adata=importfile('A_data.txt'); % Use system generated functions to read txt file
[row,coloum]=size(Adata); % Get the output matrix size
high=Adata(1:3:57,2); % Extraction height
longitude=Adata(2:3:56,2:3:coloum); % Extract longitude
latitude=Adata(2:3:56,3:3:coloum); % Extract latitude
A_position=Adata(58,2:4); %A Ground location
B_position=Adata(58,7:9); %B Ground location
A_spots=Adata(59:67,2:5); %A Local scenic spot information
B_spots=Adata(59:67,8:11); %B Local scenic spot information
Get and txt Consistent formatted data in text :
thus , The data has been successfully extracted , The next step is to map according to the data ( Topographic map of a place ).
边栏推荐
- glassfish org. h2.server. Shutdownhandler classnotfoundexception exception exception handling
- 表空间创建管理及控制文件管理
- EPS电动转向系统分析
- 嵌入式軟件測試怎麼實現自動化測試?
- php如何解决高并发问题
- 历经一个月,终于拿到金蝶Offer!分享一下四面面经+复习资料
- "Core values of testing" and "super complete learning guide for 0 basic software testing" summarized by test engineers for 8 years
- 项目管理精华读书笔记(六)
- Qt:qss custom QSlider instance
- What is the salary level of 17k? Let's take a look at the whole interview process of post-95 Test Engineers
猜你喜欢
面試題總結(2) IO模型,集合,NIO 原理,緩存穿透,擊穿雪崩
00后抛弃互联网: 毕业不想进大厂,要去搞最潮Web3
可以写进简历的软件测试电商项目,不进来get一下?
Exclusive analysis | truth about resume and interview
T5 attempt
How to realize automatic testing in embedded software testing?
Activity and fragment lifecycle
I, a tester from a large factory, went to a state-owned enterprise with a 50% pay cut. I regret it
Expandablelistview that can expand and shrink (imitating the list page of professional selection of Zhilian recruitment)
redis那些事儿
随机推荐
栈,单调栈,队列,单调队列
Using activity to realize a simple inputable dialog box
Google Earth Engine(GEE)——当我们前后影像来弥补插值效果得时候,没有效果怎么办?
QT: QSS custom qtoolbutton instance
BI技巧丨权限轴
UI自动化测试如何走出困境?价值又如何体现?
面试题总结(2) IO模型,集合,NIO 原理,缓存穿透,击穿雪崩
Exclusive analysis | truth about resume and interview
进程与线程
线性表顺序表综合应用题P18
如何:配置 ClickOnce 信任提示行为
表空间创建管理及控制文件管理
Hal -- writing hardware drivers
Solve undefined reference to`__ aeabi_ Uidivmod 'and undefined reference to`__ aeabi_ Uidiv 'error
QT: QSS custom qtoolbar and qtoolbox instances
How to realize automatic testing in embedded software testing?
php如何解决高并发问题
Software testing e-commerce projects that can be written into your resume, don't you come in and get it?
How can UI automated testing get out of trouble? How to embody the value?
Summary of interview questions (2) IO model, set, NiO principle, cache penetration, breakdown avalanche