MATLAB小技:从文本数据第N行开始读取

matlab快速选择矩阵中的某一行或某一列 在上方找到“变量”这一栏,有一个要你输入“行数列数 ”的东西。举例,你如果想看矩阵的(1183,40)这个数据,那你就输进去相应的数字。最后在“1183”或者“40”这个数字后面连敲两次“回车”。 阅读详情

http://www.eetop.cn/blog/html/03/6503-23236.html


因为用ocnprint从Cadence导出的文本数据中第一行会有留白,很多人介绍的方法都是手工删除前面的空白或空白和文字。个人觉得比较麻烦。

其实如果在MATLAB中可以用textread命令来控制从第N行开始读取数据。比如输出的原始数据,第1行是空白数据,第2行是数据名称,第3行是空白行,而有用数据是从第4行开始,如下所示:
---------------------------------------------------------------------------------------------------------------

vgs               getData("P2:id    getData("P2:gm    getData("P2:gd    getData("P2:vt 
 0.00000e+00      -2.02811e-14       2.35844e-13       1.23904e-14      -8.09185e-01  

----------------------------------------------------------------------------------------------------------------

可用下面语句读取这些数据:
d=textread('nmos_vgs.dat', '' , 'headerlines', 2)  %意味着读取数据的时候跳过前2行。
或者:
d=textread('nmos_vgs.dat', '' , 'headerlines', 3)  %意味着读取数据的时候跳过前3行。

(这说明textread命令似能自动跳过数据段落的空白行?)

顺手转一段网上的关于textread命令的详细解释。
---------------------------------------------------------------------------------------------------------------

实际应用中经常要读取txt文件,这个时候就需要用到强大的textread函数。
它的基本语法是:
[A,B,C,...] = textread(filename,format)
[A,B,C,...] = textread(filename,format,N)
其中
filename就是文件名, format就是要读取的格式,A,B,C就是从文件中读取到的数据。中括号里面变量的个数必须和format中定义的个数相同。 如果每N行相同格式的数据,可采用[A,B,C,...] = textread(filename,format,N)的语法,读取N次。
举例如下:
例子1:myfile.txt 中的内容如下:
1 2 3 4
5 6 7 8
9 10 11 12
相应的语句为:
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n');
或者为
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n',3);


例子2:myfile.txt 中的内容如下:
1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12
相应的语句为:
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n',
'
delimiter', ',');
这里
delimiter指出分隔符,读数据的时候会自动跳过分隔符。


例子3:myfile.txt 中的内容如下:
% this a comment
1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12
相应的语句为:
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n',
'
delimiter', ',','headerlines', 1);
这里告诉textread跳过一开始的1行,1可以替换为任意你要跳过的行数。

例子4:
myfile.txt 中的内容如下:

Sally Level1 12.34 45 Yes

相应语句为:

filename = '.\myfile.txt';

[names, types, x, y, answer] = textread(filename , '%s %s %f %d %s', 1)
 
4.1如果要忽略12.34这个浮点数。
[names, types, y, answer] = textread(filename , '%s %s %*f %d %s', 1) 
 

%*f 告诉textread跳过一个浮点数。
4.2 如果要忽略Level,指读取后面的数字,

[names, levelnum, x, y, answer] = textread(filename , ... '%s Level%d %f %d %s', 1)
 
 
例子5:myfile.txt 中的内容如下 
1,2,3,4,,6 
7,8,9,,11,12
 
想用nan替代为空的部分。
语句如下:
data = textread('myfile.txt', 'delimiter', ',', 'emptyvalue', NaN);
 
 
例子6: myfile.txt 中的内容如下  
 Sally    Type1 12.34 45 Yes
 Joe      Type2 23.54 60 No
 Bill     Type1 34.90 12 No
 
如果只想读第一列,其余的跳过
filename = '.\myfile.txt';
[names]=textread(filename,'%s%*[^\n]')
 
 %[^...] - reads characters not matching characters between the brackets until first matching character  
%[^\n] 就是一直读到行尾。
%*[^\n] 就是从当前直接跳到行尾。 
可对比
[names,rest]=textread(filename,'%s%[^\n]') 
 
 
例子7: myfile.txt 中的内容如下                  
Location;date;discharge 
Lobith;1989-01-01;00:00;2801
Lobith;1989-01-02;00:00;2619
 
语法如下:
[Location,... % 1
    yyyy              ,... % 2a datestring year
    mm                ,... % 2b datestring month
    dd                ,... % 2c datestring day
    HH                ,... % 3a timestring hour
    MM                ,... % 3b timestring minute
    discharge] =  ...
    textread(filename,'%s%f-%f-%f%f:%f%f',...
        'headerlines',1,...
        'delimiter'  ,';');
 
注意:
textread不用先fopen那个文件,适用于格式统一的txt文件的一次性大批量读取。textread读取某个文件后,下次再用textread读取这个文件时,还是会从文件头开始读取。
  

----------------------------------------------------------------------------------------------------------------

Matlab从txt第二行开始读,MATLAB小技:从文本数据第n行开始读取 因为文本数据中第一行会有留白,很多人介绍的方法都是手工删除前面的空白或空白和文字。个人觉得比较麻烦.其实如果在MATLAB中可以用textread命令来控制从第N行开始读取数据。比如输出的原始数据,第1行是空白数据,第2行是数据名称,第3行是空白行,而有用数据是从第4行开始,如下所示:---------------------------------------------------------... 阅读详情

相关推荐

matlab使用fscanf函数格式化读取txt文本文件中的数据

格式化读取txt文件中的数据

JingpengSun的博客 3995

matlab从某一行开始读取数据

比如data.txt的文件内容如下: 1.1 1.2 1.3 //测试用的一行 38010.21 1 20001.48 2 11939.17 3 7711.996 4 5302.323 5 3718.099 6 2498.055 7 1660.385 8 1143.084 9 如下一句代码,即可从第二行开始读取数据: data=textread('data.txt','','headerli

pymqq的专栏 1万+

使用Matlab读取二进制数据文件

第一步:打开文件,用到的函数fopen fid=fopen('文件名',读取方式) fid:句柄值;小于0表示打开失败;大于0表示打开成功 文件名:字符串,使用单引号(本文例程'savedata.dat') 读写方式:(本文例程二进制文件只读方式打开rb) ‘r’:只读方式打开文件(默认的方式),该文件已存在。 ‘r+’:读写方式打开文件,打开后先读后写。该文件已存在。 ‘w’:打开后写...

a1347065101的博客 2万+

matlab中提取mat文件中的某行某列的值

对MATLAB生成的.mat文件进行读取。 比如存储的时候是save train.mat  A。然后在读取时用,H=load('train.mat').   然后想显示任意行列数据时用。K=H.A(:,1:3),就可选取全部行,第一到三列。这说明H是结构数组。

梦想庚远 2万+

RISC-V内核移植实战:从零开始手把手实现RT-Thread上下文切换(附GD32VF103代码解析)

本文详细解析了在RISC-V架构上移植RT-Thread实时操作系统的核心步骤,重点聚焦于上下文切换机制的实现。通过对比ARM Cortex-M与RISC-V在中断处理和寄存器管理上的关键差异,并以GD32VF103开发板为例,手把手指导开发者完成libcpu抽象层适配、线程栈初始化以及三种上下文切换方式的代码编写与调试,为嵌入式开发者从ARM转向RISC-V平台提供了实战指南。

fern8的博客 739

关于示波器测485串口波特率的使用方法总结

之前没有用过示波器,更不知道怎么来测试串口的波特率,结果遇到一客户说我们产品的波特率达不到9600,只有9100,为了验证这一说法,我们只能自己测试一下。说明:产品通过485接电脑,用串口调试助手接收都是没有问题的,用客户的设备接收就有问题。 下面说一下示波器测波特率的方法步骤: 显示高低跳变的情况: 1.先把示波器表笔的地线(夹子)夹485B,表笔夹485A。 2.往串口发送数据:如发送

lianxue1986的专栏 3万+

【ocean】ocnPrin结合getData导出数据

核心就是这一句ocnPrint(?

Never Give Up 623

鼎捷T100二次开发实战:如何给开窗功能加上权限锁(附完整代码)

本文详细解析了鼎捷T100二次开发中开窗功能权限锁的实现方法,提供了两种技术方案:开窗程序重构法和动态WHERE条件注入法,并附上完整代码示例。通过真实案例,帮助开发者解决数据权限细粒度控制的难题,提升ERP系统的安全性和实用性。

weixin_28454475的博客 442

MATLAB 读取txt 指定行

fid = fopen(FileText); % 文件名 % 方案一 lines= textscan(fid,'%[^\n]',20,'Headerlines',5); % 跳过5行,读下面的20行 disp(lines{1}) % 方案二 for i= 1:20 tline = fgetl(fid); if i>5 disp(tline); ...

优快云_now的博客 1万+

第十五章数据管理成熟度评估【6’】(DAMA-CDGA 2022年以后历年模拟题真题汇总,基本包含所有考点。)

第十五章数据管理成熟度评估【6’】(DAMA-CDGA 2022年以后历年模拟题真题汇总,基本包含所有考点。)

JasonH2021的博客 403

Plant Simulation与ABB机器人虚实结合

Plant Simulation与ABB机器人虚实结合

santayana的专栏 1869

转:MATLAB小技:从文本数据第N行开始读取或者只读取特定几列

MATLAB小技:从文本数据第N行开始读取或者只读取特定几列http://blog.sina.com.cn/s/blog_67f37e7601019j6o.html(2012-11-20 19:27:29)转载▼ 标签:杂谈分类:Matlab在MATLAB中可以用textread命令来控制从第N行开始读取数据。比如输出的原始数据,第1行是空白数据,第2行是数据名称,第3行是空白行,而有用数据是...

gll028的专栏 4万+

电子元器件选型与实战应用—01 电阻选型

大家好, 我是记得诚。这是《电子元器件选型与实战应用》专栏的第一篇文章,今天的主角是电阻,在每一个电子产品中,都少不了电阻的身影,其重要性不言而喻。

记得诚 3537

matlab键盘输入n行数据,MATLAB小技:从文本数据第N行开始读取

http://www.eetop.cn/blog/html/03/6503-23236.html因为用ocnprint从Cadence导出的文本数据中第一行会有留白,很多人介绍的方法都是手工删除前面的空白或空白和文字。个人觉得比较麻烦。其实如果在MATLAB中可以用textread命令来控制从第N行开始读取数据。比如输出的原始数据,第1行是空白数据,第2行是数据名称,第3行是空白行,而有用数据是从...

weixin_39598501的博客 1684

BACnet协议栈基本对象BI、BO、AI、AO、AV以及device和File对象介绍

BACnet协议栈基本对象BI、BO、AI、AO、AV以及device和File对象介绍

shufawangzhang的博客 3986

Vue3 - 完美解决html2canvas截图不全问题,截图只截取当前可视区域导出图片不全,截屏导出的图片显示不全只有一部分或缺一块,vue3移动端H5网页项目使用html2canvas插件长截图!

vue3,html2canvas,移动端H5网页,截图不全,html2canvas长截图不全,保存长截图,页面滚动导致截图不全,网页下方截屏不到怎么办,底部一部分无法截屏到,保存的图片少了一大块,H5海报截图不完整,怎么截取滚动条下方的内容,截图图时图片不全,截图图片只有一半的问题,底部内容空白,截图空白问题的解决,截图不全怎么办,html2canvas.js网页截图功能(解决截图不全问题,移动端ios系统截图不完整,html2canvas截图太长又不能删减截取不到,使用HTML2Canvas在H5页面上实

🏆 前端领域优质创作者 1万+

Matlab 从第N行开始读取数据

Data =  textread('data.txt','','headerlines',7); %这样就从第8行开始读取数据,跳过前面7行。

pymqq的专栏 5842

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

matlab从第N行开始读取dat数据

遇到了这样的一个问题,在matlab中要读取下面dat文件中的数据存到数组中。 但是,最前面的一行是数据提示语,例如第一列的rcs代表下面的数据是雷达目标的rcs,第二列的fre代表其对应的频率。我们要读到matlab中要进行处理的数据当然不包括第一行的rcs和fre。所以怎么跳过第一行直接读后面的呢? 尝试过load和fscanf函数,好像都不行。最后找到了一个textscan函数可以实现这个目的。下面是代码以及运行结果: clc;clear;close all; fid=fopen('rcs.dat'

黄上的博客 8882

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MATLAB读取列数不一致的文件(1、跳过前面N行数据,2、读取每行列数不同数据)

MATLAB常见的读取加载数据文件都是用load 、importdata之类比较多,该类方法多局限于文件数据每一行的列数都是相等的; 但是如果遇到的数据文件前面N行数据是英文或中文,剩下的是列数相等的数据,那这类导入方法有点不行了,例如数据文件长这样: 我们要读取的是后面列数相同的浮点型数据,保存在一个矩阵中,需要跳过前面11行数据(这...

qq_42272539的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

matlab读取文本文件----textscan

textscan 从文本文件或字符串读取格式化数据 全页折叠 语法 C = textscan(fileID,formatSpec) C = textscan(fileID,formatSpec,N) C = textscan(chr,formatSpec) C = textscan(chr,formatSpec,N) C = textscan(___,Name,Value) [C...

菜鸟进阶 3万+

Matlab_textscan用法教程1_从指定行读取数据

files=dir([TopDir,'\*.dat']); %读取dat文件 file_num=max(size(files)); i=1; fileID=fopen(files(i).name); data = textscan(fileID, '%f %f %f %f','headerlines', 11);%读取第11行之后(即第12行开始)的数据 %------后面部分是编辑器的使用,忽略---------------- 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown

CUHK_Logan的博客 4142

Matlab读取txt数据的实用方法

需求 有个朋友需要我帮忙写个matlab脚本读取100个txt文档的实验数据,这些文档的结构相同,分为四列,从第一列到第四列依次是时间、位置、速度、加速度。读取完数据之后需要对数据进行处理,具体的处理方式是:提取以0.002为采样周期的数据,分类存储起来。 文件内容是这样的: 技术难点 技术难点在于,这些文件中的数据是从一个软件中仿真得到的,由于采用的是变步长仿真,因此采样时间不统一,很难采用对...

Alexon Xu的博客 6万+

matlab 行 读取文件 跳过_Matlab 读取dat文件(包含几行多余文本,数据带有数字和字符串,且以逗号分隔)...

需要删除前几行多余文本,并去除逗号和最后一列标签项,保存数据处理前:matlab代码:fid = fopen(‘E:\study\研究生\a\backup新\backup\数据库\ecoli1.dat‘,‘rt‘);%FormatString=‘%f %f %f %f %f %f %f %s‘;%取前8列数据FormatString=‘%f %f %f %f %f %f %f %*[^\n]‘;%...

weixin_39708557的博客 2505

matlab中读文件的行数_Matlab 中如何读取TXT数据文件中指定行的数据

matlab中如何读取TXT数据文件中指定行的数据?matlab中如何读取TXT数据文件中指定行的数据?下面这个函数是取filein中的第line行写入fileout中的程序,如果想实现取特定几行,只要稍微修改一下就可以。functiondataout=dataread(filein,fileout,line)fidin=fopen(filein,'r');fidout=fopen(fileou...

weixin_39794385的博客 4302

verilog testbench matlab 读取和写入文本代码

1.matlab写入文本 因为modelsim没有区分有无符号,所以需要先将十进制有符号数进行量化再转化为二进制数,然后写入文本。(量化位数即输入的位数)代码如下:(请自行调整) Q=16;%16bit量化 f_s=qam16/max(abs(qam16));%归一化处理 a=round(f_s*(2^(Q-1)-1));%量化 fid = fopen ('E:\FM\amatlab\datain...

qq_35608277的博客 2746

MATLAB读取文本文件----textread

textread 读取文本文件中的数据;写入多个输出 注意 不推荐使用textread。请改用textscan。 语法 [A,B,C,...] = textread(filename,format) [A,B,C,...] = textread(filename,format,N) [...] = textread(...,param,value,...) 说明 [A,B,C...

菜鸟进阶 1万+
上一篇: C argc and argv Examples to Parse Command Line Arguments
下一篇: How to enable syntax highlighting and other options in VIM
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值