关于matlab中textread
本文主要内容引自http://linux.chinaitlab.com/administer/872894.html
笔者在此基础上进行运行,修改得到以下内容,希望大家给与补充:
textread
基本语法是:
[A,B,C,…] = textread(filename,format)
[A,B,C,…] = textread(filename,format,N)
其中filename就是文件名, format就是要读取的格式,A,B,C就是从文件中读取到的数据。
必须严格遵守用法不可出现data=textread(filename,format,N)的形式
其中括号里面变量的个数必须和format中定义的个数相同。 如果每N行相同格式的数据,可采用[A,B,C,…] = textread(filename,format,N)的语法,读取N次。
_______________________________________________________________________________
注:textread不用先fopen那个文件,适用于格式统一的txt文件的一次性大批量读取。textread读取某个文件后,下次再用textread读取这个文件时,还是会从文件头开始读取。
_______________________________________________________________________________
例如:
.....................................................................................
例1:无分隔符
mytest.txt
1 2 3 4
5 6 7 8
9 10 11 12
读取:
>>[data1,data2,data3,data4]=textread('mytest.txt','%n%n%n%n');
>>data=[data1 data2 data3 data4]
data =
1 2 3 4
5 6 7 8
9 10 11 12
或者,[data1,data2,data3,data4]=textread(filename,'%n%n%n%n',3);%注意3为读取次数,应该是行数
....................................................................................
例2:有分隔符(逗号,分号...)
myfile.txt 中的内容如下:
1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12
读取:
>> [data1,data2,data3,data4]=textread('myfile.txt','%n%n%n%n','delimiter', ',')
>> data=[data1 data2 data3 data4]
data =
1 2 3 4
5 6 7 8
9 10 11 12
这里delimiter是指 指出分隔符,读数据的时候会自动跳过分隔符。
至此应该知道Iris.txt怎么读入了吧。
[data1,data2,data3,data4,data5]=textread('Iris.txt','%f%f%f%f%s','delimiter',',');
需要注意的是,参数位置要和textread函数用法对应
[A,B,C,…] = textread(filename,format,N)也就是filename,format,N三个参数必须在其他参数前面,所以150才会出现在format后
例如:[data1,data2,data3,data4,data5]=textread('Iris.txt','%f%f%f%f%s',150,'delimiter',',');
..............................................................................
例3:有分隔符及首行注释
myfiles.txt 中的内容如下:
% this a comment
1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12
>> [data1,data2,data3,data4]=textread('myfiles.txt','%n%n%n%n','delimiter', ',','headerlines', 1);
>> data=[data1 data2 data3 data4]
data =
1 2 3 4
5 6 7 8
9 10 11 12
textread中的headerlines指明了跳过几行,1可自由设定
这里headerlines告诉textread跳过一开始的1行,1可以替换为任意你要跳过的行数。
..............................................................................
例4:针对txt文件不同格式数据的读取
myfile.txt 中的内容如下:
Sally Level1 12.34 45 Yes
读入:
[names, types, x, y, answer] = textread('myfileli4.txt' , '%s %s %f %d %s', 1);
对应格式[A,B,C,…] = textread(filename,format,N)
_________________________________________________________________________________
例4.1: 如果要忽略12.34这个浮点数。
[names, types, y, answer] = textread('myfileli4.txt' , '%s %s %*f %d %s', 1)
%*f 告诉textread跳过一个浮点数。
names =
'Sally'
types =
'Level1'
y =
45
answer =
'Yes'
对于iris.txt如果只想读取数据可用[data1,data2,data3,data4]=textread('Iris.txt','%f %f %f %f %*s',150,'delimiter',',');
_______________________________________________________________________________
例:4.2 如果要忽略Level,指读取后面的数字,
>> [names, levelnum, x, y, answer] = textread('myfileli4.txt','%s Level%d %f %d %s', 1)
names =
'Sally'
levelnum =
1
x =
12.3400
y =
45
answer =
'Yes'
_______________________________________________________________________________
..............................................................OK ...............................................
例5: txt中存在空位
myfileli5.txt 中的内容如下
1,2,3,4,,6
7,8,9,,11,12
想用nan替代为空的部分
如下:
>>[data1 data2 data3 data4 data5 data6] = textread('myfileli5.txt','%f%f%f%f%f%f', 'delimiter', ',', 'emptyvalue', NaN)
>> data=[data1 data2 data3 data4 data5 data6];
>> data
data =
1 2 3 4 NaN 6
7 8 9 NaN 11 12
....................................................................................................................
例6: 跳列
myfileli6.txt 中的内容如下
Sally Type1 12.34 45 Yes
Joe Type2 23.54 60 No
Bill Type1 34.90 12 No
如果只想读第一列,其余的跳过
读入:
>> clear
>> [names]=textread('myfileli6.txt','%s%*[^\n]');
>> names
names =
'Sally'
'Joe'
'Bill'
%[^\n] 就是一直读到行尾。
如:
>> [names rest]=textread('myfileli6.txt','%s%[^\n]')
names =
'Sally'
'Joe'
'Bill'
rest =
'Type1 12.34 45 Yes'
'Type2 23.54 60 No'
'Type1 34.90 12 No'
%*[^\n] 就是从当前直接跳到行尾。
% *是一个跳过符号,表示跳过该位
....................................................................................
例7:读入规律格式的数据
myfileli7.txt 中的内容如下
Location;date;discharge
Lobith;1989-01-01;00:00;2801
Lobith;1989-01-02;00:00;2619
读入:
[location year month day hour minute discharge]=textread('myfileli7.txt','%s%f-%f-%f%f:%f%f','headerlines',1,'delimiter',';');
如下:
>> clear
>> [location year month day hour minute discharge]=textread('myfileli7.txt','%s%f-%f-%f%f:%f%f','headerlines',1,'delimiter',';')
location =
'Lobith'
'Lobith'
year =
1989
1989
month =
1
1
day =
1
2
hour =
0
0
minute =
0
0
discharge =
2801
2619
关于matlab中textread的更多相关文章
- matlab中textread
今天打算跑下程序,突然发现,真的很烂,不会读入数据,简单的Iris.txt一上午都没读进去,在此对matlab中的textread函数做下总结,textscan函数待续. 本文主要内容引自http:/ ...
- matlab中读取txt数据文件(txt文本文档)
matlab中读取txt数据文件(txt文本文档) 根据txt文档不同种类介绍不同的读取数据方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如te ...
- MATLAB中文件的读写和数据的导入导出
http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行 ...
- MATLAB中绘制质点轨迹动图并保存成GIF
工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...
- matlab 中 eps 的分析
eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高.默认a=1: 这里直接在matlab中输入:eps == eps(1)(true). 我们知道浮点数其实是离散的,有限的 ...
- matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
- paper 121 :matlab中imresize函数
转自:http://www.cnblogs.com/rong86/p/3558344.html matlab中函数imresize简介: 函数功能:该函数用于对图像做缩放处理. 调用格式: B = i ...
- MATLAB中FFT的使用方法
MATLAB中FFT的使用方法 说明:以下资源来源于<数字信号处理的MATLAB实现>万永革主编 一.调用方法X=FFT(x):X=FFT(x,N):x=IFFT(X);x=IFFT(X, ...
- MATLAB中fft函数的正确使用方法
问题来源:在阅读莱昂斯的<数字信号处理>第三章离散傅里叶变换时,试图验证实数偶对称信号的傅里叶变换实部为偶对称的且虚部为零.验证失败.验证信号为矩形信号,结果显示虚部是不为零且最大幅值等于 ...
随机推荐
- Difference between <? super T> and <? extends T> in Java
stackoverflow 原文 [http://stackoverflow.com/questions/4343202/difference-between-super-t-and-extends- ...
- android避免decodeResource图片时占用太大的内存
增加largeHeap="true"属性. android:largeHeap Whether your application's processes should be cre ...
- void*指针
C++提供了一种特殊的指针类型void*,它可以保存任何类型对象的地址: void*表明该指针与一地址值相关,但不清楚存储在此地址上的对象的类型. void*指针只支持几种有限的操作: 1)与另一个指 ...
- C# winform xml的增删改查
代码如下: using System; using System.Collections.Generic; using System.IO; using System.Linq; using Syst ...
- 封装curl类,post get方法实现网站请求
<?phpclass RamDemo{ //get方法 function RamGet($url,$arr) { if($arr!=''){ ...
- 关于eclipse几种插件的安装方法
首先这里的安装方法按文件类型和安装方式来分 首先介绍按不同安装方式来分: 1.利用eclipse自带插件安装功能: 以jode插件为例,启动eclipse,help -> Software Up ...
- Android WifiDirect 学习(三) 一些基础知识和问题
P2P架构介绍 P2P架构中定义了三个组件,一个设备,两种角色.这三个组件分别是: P2P Device:它是P2P架构中角色的实体,读者可把它当做一个Wi-Fi设备. P2P Group Owner ...
- Uploadify插件使用方法
1.下载所需文件 2.导入所需文件,还需要应用jquery.js文件 3.导入css.js uploadify.css.jquery.uploadify.min.js 4.前端代码 p标签存放uplo ...
- 安装spark1.3.1单机环境
本文介绍安装spark单机环境的方法,可用于测试及开发.主要分成以下4部分: (1)环境准备 (2)安装scala (3)安装spark (4)验证安装情况 1.环境准备 (1)配套软件版本要求:Sp ...
- PclZip:强大的PHP压缩与解压缩zip类
PclZip简介PclZip是一个很强大的压缩与解压缩zip文件的PHP类,PclZip library能够压缩与解压缩Zip格式的压缩档(WinZip.PKZIP):且能对此类类档案进行处理,包括产 ...