函数textread
函数textread可以按列读取ascii 文件中的元素,每一列中可能含有不同的数据类型。这函数读取其他程序生成的数据表时非常地有用。
实际应用中也要经常要读取txt文件,这个时候就需要用到强大的textread函数。
这个命令的形式如下:
[A,B,C,…] = textread(filename,format)
[a, b, c, ...] = textread(filename, format, n)
其中filename 代表要打开的文件的名字,format 是用于每一行数据类型的字符串,n 代表要读取的行数(如果没有n,则这个命令将读完这个文件)。格式化字符串与函数fprintf 格式化描述的字符串相同。注意输出参数的个数必须与你读取的列数相区配。
举例如下:
例子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]')
函数textread 要比load 命令简单有效的多。load 命令假设输入文件中的所有数据都是同一类型——它不支持在不同的列上有不同的数据。此外,它把所有的数据都存储在一个数据中。相反地,函数textread 允许每一列都有独立的变量,当和由不同类型的数据组成的列运算时,它更加的方便。函数textread 中有许许多多参数,它们增加了函数的灵活性。
注意:
textread不用先fopen那个文件,适用于格式统一的txt文件的一次性大批量读取。textread读取某个文件后,下次再用textread读取这个文件时,还是会从文件头开始读取。
函数textread的更多相关文章
- MATLAB textread函数
实际应用中经常要读取txt文件,这个时候就需要用到强大的textread函数.它的基本语法是:[A,B,C,...] = textread(filename,format)[A,B,C,...] = ...
- matlab初学之textread
文章出处:http://blog.sina.com.cn/s/blog_9e67285801010bju.html 基本语法是: [A,B,C,-] = textread(filename,forma ...
- Matlab读入含有特殊分隔符的文件(textread)
笔者在此基础上进行运行,修改得到以下内容,希望大家给与补充: textread 基本语法是: [A,B,C,…] = textread(filename,format) [A,B,C,…] = tex ...
- matlab各格式数据读取与保存函数
数据处理及matlab的初学者,可能最一开始接触的就是数据的读取与保存: %matlab数据保存与读入 function datepro clear all; %产生随机数据 mat = rand(, ...
- matlab中textread
今天打算跑下程序,突然发现,真的很烂,不会读入数据,简单的Iris.txt一上午都没读进去,在此对matlab中的textread函数做下总结,textscan函数待续. 本文主要内容引自http:/ ...
- 关于matlab中textread
本文主要内容引自http://linux.chinaitlab.com/administer/872894.html 笔者在此基础上进行运行,修改得到以下内容,希望大家给与补充: textread 基 ...
- 【转】matlab的textscan与textread区别
1.基本语法textscan的基本语法是:C = textscan(fid, 'format') C = textscan(fid, 'format', N) 其中fid为fopen命令返回的文件标识 ...
- matlab 常用函数(数学建模-复习)
常用函数 fscanf(fid, '%c', inf) -> 直接读取整个文件, 因为inf表示无穷 strtrim char(num): 将num转为ASCII字符 strtok(conten ...
- matlab实战中一些重要的函数总结
这段时间看了一些大型的matlabproject文件(如:faster r-cnn),对于project中常常要用到的一些函数进行一个总结. 1.路径问题. 这主要涵括文件路径的包括和组合. curd ...
随机推荐
- ASP.NET运行原理_2
当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的页面类型为其加载相应的.dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块.在ASP.NET 3.5中,这个模 ...
- cocos2d中两种移动的算法
在对cocos2d的sprite处理移动的过程中,通常用到的两种移动的算法: 假设这个CCNode是直接放在CCLayer上的 距离差法: CGPoint curTouchPosUI = [touch ...
- decorview that was originally added here or java.lang.IllegalArgumentException: View not attached to window manager
使用Dialog的时候,没少出现下面这两个报错 12-11 17:47:49.776: E/WindowManager(11461): android.view.WindowLeaked: Activ ...
- linux大于2T的磁盘使用GPT分区方式
MBR(Master Boot Record)(主引导记录)和GPT(GUID Partition Table)(GUID意为全局唯一标识符)是在磁盘上存储分区信息的两种不同方式 对于传统的MBR分区 ...
- 使用CSS3和jQuery可伸缩的搜索条
使用CSS3和jQuery可伸缩的搜索条 helloweba.com 作者:月光光 时间:2013-12-09 21:23 标签: CSS3 jquery 搜索条在我们网站是必不可少的,尤其是在有限的 ...
- 【转载】Restful 简介
转自阮一峰的网络日志 http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种&quo ...
- Smack[3]用户列表,头像,组操作,用户操作
用户列表 Smack主要使用Roster进行列表管理的 connection.getRoster(); /** * 返回所有组信息 <RosterGroup> * * @return Li ...
- 单点登录系统CAS筹建及取得更多用户信息的实现
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 修改Oracle Client的字符集
修改Oracle Client的字符集 找到注册表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1下的 NLS_LANG,修改键值为SIMP ...
- 创建性能监视器(logman)
在本地计算机上抓取性能信息 Logman.exe create counter Perf-1Second -f bincirc -max 500 -c "\Processor(*)\% Pr ...