matlab中textread 函数
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中bwmorph函数的使用
Matlab中bwmorph函数的使用 Matlab中提供了一个基于形态学的处理函数,即以膨胀.腐蚀等操作为基础,其语法格式如下: bw2=bwmorph(bw1,operation,n); 其中bw ...
- 9.matlab中repmat函数
来源: matlab中repmat函数的用法 - CSDN博客 https://blog.csdn.net/anqier1009/article/details/5214978 B = repmat( ...
- 如何在Matlab中获取函数参数的数目?
本图文详细介绍了Matlab中获取函数参数数目的方法.
- matlab s% d%,matlab中var函数的翻译For N-D arrays, VAR operates along the first
matlab中var函数的翻译For N-D arrays, VAR operates along the first matlab中var函数的翻译 For N-D arrays, VAR oper ...
- 关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法
关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 参考文章: (1)关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 (2)https://www.cn ...
- Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17)
Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17) 转载▼ 标签: 杂谈 分类: Matlab应用 我们在统计数据处理时,经常计算一个样本的概率密度估计,也就是 ...
- cumsum在matlab中,matlab中cumsum函数和sum函数详解
调用格式及说明 matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 调用格式及说明 ...
- matlab中fprintf函数的具体使用方法
matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...
- Matlab中plot函数及legend函数详解
Matlab中plot函数及legend函数详解 Matlab中plot函数及legend函数详解 Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y) plot(X1,Y1 ...
最新文章
- 【系统分析与设计】业务流程图绘制方法
- Swift - 程序进入后台,以及应用终止时调用的方法
- 在类内定义成员函数、在类外定义成员函数、计算长方体的体积【C++面向对象编程类的使用经典案例】
- Linux字符串转换函数汇总
- 重磅!华为方舟编译器招募 2000 程序员!
- Laravel 成为最佳 PHP 框架的 14 个理由!
- Gesture APIs-Furthering Windows Mobile 6.5 Touch Gesture Framework
- Codeforces Round#767(Div.2) F1. Game on Sum (Easy Version)
- 智慧工地工人实名制管理整体解决方案
- 道与术丨华为云数据库战略启示录
- 常用类/ID命名举例
- 智媒链全球社区见面会 中国·北京(首场)
- 将HEX文件通过Keil软件进行下载
- 笔记1 第11课 贪心初步 ——柠檬水找零,分发饼干,跳跃游戏,完成所有任务所需最小能量——极客时间算法
- 赏金猎人系列-如何测试sso相关的漏洞
- golang coredump分析
- Oracle to_char()函数的用法
- 机器学习中的数学基础--随机变量与概率分布,伯努利分布和泊松分布,贝叶斯定理
- 字符编码的故事(ASCII ISO GBK GB2312 UTF-8)
- 用C++封装一个简单的英汉词典