今天打算跑下程序,突然发现,真的很烂,不会读入数据,简单的Iris.txt一上午都没读进去,在此对matlab中的textread函数做下总结,textscan函数待续。

本文主要内容引自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

转载于:https://www.cnblogs.com/AI-Algorithms/p/3670271.html

matlab中textread相关推荐

  1. tm matlab,[转载]关于matlab中textread

    今天打算跑下程序,突然发现,真的很烂,不会读入数据,简单的Iris.txt一上午都没读进去,在此对matlab中的textread函数做下总结,textscan函数待续. 笔者在此基础上进行运行,修改 ...

  2. matlab中textread 函数

    textread 基本语法是: [A,B,C,-] = textread(filename,format) [A,B,C,-] = textread(filename,format,N) 其中file ...

  3. linux c 读取txt文件中数据类型,关于matlab中用textread读取txt文件

    今天打算跑下程序,突然发现,真的很烂,不会读入数据,简单的Iris.txt一上午都没读进去,在此对matlab中的textread函数做下总结,textscan函数待续. 笔者在此基础上进行运行,修改 ...

  4. MATLAB中文件的读写和数据的导入导出

    http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行 ...

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

    面这个函数是取filein中的第line行写入fileout中的程序,如果想实现取特定几行,只要稍微修改一下就可以. function dataout=dataread(filein,fileout, ...

  6. matlab中读文件的行数_Matlab中读取txt文件的几种方法

    Matlab中读取txt文件的几种方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如test.txt文件,内容为"17.901 -1.1 ...

  7. 在MATLAB中读取同一路径下多个txt或mat文件

    1.matlab中给我们提供了dir这个函数,十分方便.这里是读取所有txt文件,所以是dir('父目录路径\*.txt'),读取其它格式文件一样,如读取该路径下的所有png图像文件,则为dir('父 ...

  8. matlab中随机森林实现,随机森林实现 MATLAB

    matlab 中随机森林工具箱的下载地址: http://code.google.com/p/randomforest-matlab/downloads/detail?name=Windows-Pre ...

  9. matlab中bitget函数用法_Matlab函数大全

    目录 1.时间日期函数................................ ................................ ....................... ...

最新文章

  1. 微信进行证书相关操作(退款,发放优惠券等)时报System.Security.Cryptography.CryptographicException: 出现了内部错误。...
  2. c语言将数组变为空,求助~~ 如何把数组变成动态输入的?
  3. mysql 插入当前时间_MySql优化之前期探索
  4. 深度linux更新卡,深度操作系统已发布更新 新增“ apt-get custom-update”命令行
  5. 2038: [2009国家集训队]小Z的袜子(hose)
  6. 曾国藩36字诀,改变你的人生
  7. (26)计数器verilog与VHDL编码(学无止境)
  8. suma在c语言中表示什么变量,C语言题
  9. 入门——使用TensorFlow.js进行AI图像分类
  10. JAVA SSH框架的配置(myeclipse(9)+tomcat(6.0.35)+struts(2.2.3)+Spring(3.0)+Hibernate(3.0))
  11. 一阶惯性环节如何实现跟踪性能与滤波性能共存(二)
  12. 多玩YY瞄准在线教育
  13. 还搞不懂JVM?这一篇教你JVM从入门到入魔,全篇干货满满!
  14. 通过函数seaborn.cubehelix_palette生成顺序调色板
  15. 性能优化之Apk瘦身
  16. 国开电大 管理心理学 形考任务1-4
  17. PHP——四舍五入取整、向上取整、向下取整、小数截取
  18. 利用智能算法优化参数的自适应变分模态分解,VMD实现混合储能系统的分频
  19. python-office的使用
  20. kerberos搭建

热门文章

  1. 红透半边天的无服务器只是炒作吗?技术上如何发展?
  2. OSPF的RID和DR/BDR的选举
  3. 第 1 章 容器生态系统 - 003 - 容器生态系统 (续)
  4. 第三天:创建型模式--建造者模式
  5. redis在Linux上的安装
  6. 使用扩展的 CodeIgniter 框架实现 RESTful 框架
  7. 第二十三周微职位elk日志系统
  8. 实现线程之间的参数传递
  9. 构建linux下的web服务器
  10. 微博运营与微博营销最易犯的20种错误,你犯了吗?