当前位置:网站首页>MATLAB提取不规则txt文件中的数值数据(简单且实用)
MATLAB提取不规则txt文件中的数值数据(简单且实用)
2022-07-03 10:04:00 【感谢地心引力】
一、前情概要
我的txt文本数据如图所示(部分),是某地的地形数据以及景点的位置数据:
txt里面包括数值、文字、中英文括号、中英文逗号、空格等等,总之类型很复杂,用通常的load、importdata、txtscan等函数都不太好处理。
这里介绍一种快捷又十分实用的方法。
二、MATLAB导入数据
以前都直接实用代码读取文件的,很少使用到这个功能,但这个功能却非常好用。(当然了,批量的、格式化的文件还是建议使用代码读取)。
2.1 数据加载
直接点击就完事:
2.2 设置分割符
txt中的内容虽然比较混乱,但数据与数据之间还是有分隔撒,比如空格、逗号之类的。我的数据里面分隔符号比较多且乱,具体设置如下:
在这里可以设置数据的分隔符,自定义分隔符支持任意键盘输入(汉字、标点、换行等等),根据实际情况设置即可。
根据设置的分隔符,txt文档被划分如下:
2.3 设置输出格式
该功能可以输出table、矩阵、cell、字符串数组等格式,在此我选择数值矩阵。
对于txt中无法导入的cell,可以设置替换值,如Nan(可以自定义),也可以将那一行或列删除。
设置好输出条件后,确保选中了要输出的数据(框选部分或者ctrl A 全选),如2.2节中所示,蓝色为输出的数值,而黄色则替换成了NaN。
2.4 生成脚本或函数
在导出时,可以生成脚本或者函数,仅适用于当前文件。后续对该文件的操作,使用代码就可以实现了。
我的txt文件对应的函数如下:
function Adata = importfile(filename, dataLines)
%IMPORTFILE1 从文本文件中导入数据
% ADATA = IMPORTFILE1(FILENAME)读取文本文件 FILENAME 中默认选定范围的数据。 返回数值数据。
%
% ADATA = IMPORTFILE1(FILE, DATALINES)按指定行间隔读取文本文件 FILENAME
% 中的数据。对于不连续的行间隔,请将 DATALINES 指定为正整数标量或 N×2 正整数标量数组。
%
% 示例:
% Adata = importfile1("G:\资料\Now\Part_time_job\建模800\A_data.txt", [1, Inf]);
%
% 另请参阅 READTABLE。
%
% 由 MATLAB 于 2022-06-30 18:16:29 自动生成
%% 输入处理
% 如果不指定 dataLines,请定义默认范围
if nargin < 2
dataLines = [1, Inf];
end
%% 设置导入选项并导入数据
opts = delimitedTextImportOptions("NumVariables", 445);
% 指定范围和分隔符
opts.DataLines = dataLines;
opts.Delimiter = [" ", "(", ")", ",", ",-", "(", ")", ","];
% 指定列名称和类型
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"];
% 指定文件级属性
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
% 指定变量属性
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", ",");
% 导入数据
Adata = readtable(filename, opts);
%% 转换为输出类型
Adata = table2array(Adata);
end
2.5 数据的进一步处理
上述方法虽然很好的将txt中的数据读取出来了,数据中还包含一直空值之类的。可以进一步提取:
将不同高度,对应的经纬度、景点数据采用如下代码进行提取:
close all;
clear;
clc;
Adata=importfile('A_data.txt'); %使用系统生成的函数读取txt文件
[row,coloum]=size(Adata); %获取输出的矩阵尺寸
high=Adata(1:3:57,2); %提取高度
longitude=Adata(2:3:56,2:3:coloum); %提取经度
latitude=Adata(2:3:56,3:3:coloum); %提取纬度
A_position=Adata(58,2:4); %A地位置
B_position=Adata(58,7:9); %B地位置
A_spots=Adata(59:67,2:5); %A地景点信息
B_spots=Adata(59:67,8:11); %B地景点信息
得到与txt文本中一致的格式化数据:
至此,数据已经成功提取,接下来则是根据数据做图(某地地形图)。
边栏推荐
- Logstash backup tracks the data records reported
- Kotlin's use of the no Arg compiler plug-in in gradle
- Google Earth Engine(GEE)——GHSL 全球人口网格数据集250米分辨率
- The role and necessity of implementing serializable interface
- After 8 years of industry thinking, the test director has a deeper understanding of test thinking
- How can UI automated testing get out of trouble? How to embody the value?
- Qt:qss custom qspinbox instance
- Touch and screen automatic rotation debugging
- . Net core - a queuing system for wechat official account
- File upload and download test point
猜你喜欢

反正切熵(Arctangent entropy):2022.7月最新SCI论文

QT: QSS custom qtabwidget and qtabbar instances

AMS Series 1 - AMS startup process

I have been doing software testing for three years, and my salary is less than 20K. Today, I put forward my resignation

Error installing the specified version of pilot

What are the strengths of "testers"?

英特尔13代酷睿旗舰曝光,单核5.5GHz

Communication software development and Application

栈,单调栈,队列,单调队列

封装一个koa分布式锁中间件来解决幂等或重复请求的问题
随机推荐
Qt:qss custom qlistview instance
The element form shows the relationship between elementary transformation and elementary matrix
解决undefined reference to `__aeabi_uidivmod‘和undefined reference to `__aeabi_uidiv‘错误
QT: QSS custom qtableview instance
如何成为一名高级数字 IC 设计工程师(1-5)Verilog 编码语法篇:操作数
公司测试部门来了个00后卷王之王,老油条感叹真干不过,但是...
IIS does not take effect after modifying the configuration information
How can UI automated testing get out of trouble? How to embody the value?
UI自动化测试如何走出困境?价值又如何体现?
Inexplicable problems in the nesting of constraintlayout and relativelayout
T5 attempt
Encapsulation attempt of network request framework of retro + kotlin + MVVM
First line of code kotlin notes
如何清理v$rman_backup_job_details视图 报错ORA-02030
The normal one inch is 25.4 cm, and the image field is 16 cm
2021 postgraduate entrance examination mathematics 2 linear algebra
VPP三层网络互联配置
Exclusive analysis | truth about resume and interview
What is the salary level of 17k? Let's take a look at the whole interview process of post-95 Test Engineers
Have you learned the new technology to improve sales in 2021?