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

笔者在此基础上进行运行,修改得到以下内容,希望大家给与补充:

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

linux c 读取txt文件中数据类型,关于matlab中用textread读取txt文件相关推荐

  1. Matlab读取txt文件中的数据(使用textread函数)

    在使用Matlab处理数据时,我们经常需要读取txt文档,可以使用Matlab中强大的textread函数. 它的基本语法是: [A,B,C,...] = textread(filename,form ...

  2. 将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件 中

    package again;import java.io.*;/* 1.编写一个程序,将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件 中,a.txt 文件中的单词 ...

  3. 根据条件从txt文件中挑出一些文字并据此修改文件名字

    根据条件从txt文件中挑出一些文字并据此修改文件名字 /* ****************************************************** *学习Windows API编 ...

  4. 把一个文件中的内容,复制到另外一个文件中

    # 把一个文件中的内容,复制到另外一个文件中.# 基础目录 BASE_DIR = "E:/python重新学习/python核心编程/文件读写/" # 读取的文件名 READ_FI ...

  5. python文件中单词的删除_使用python删除文件中的多余单词

    嗨,我正在学习Python,出于好奇,我编写了一个程序来删除文件中多余的单词. 我正在比较文件text1.txt中的测试.和'text2.txt',基于text1中的测试,我删除了test2中多余的单 ...

  6. 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 远芳侵古道,晴翠接荒城. 大家好, ...

  7. python从文件中删除某个字符,后保存该文件

    从文件中删除某个字符,后保存该文件 原本是用vs全部替换,结果发现文件太多了,将近12000个文件,非常费时间,然后就给他写了个脚本哈哈,比较快4秒就搞定了.代码拿走直接就可以用途. #!/usr/b ...

  8. 【正则表达式高级day01】正则表达式概述+在一个文件中,查找出itcast开头的语句+在一个文件中,找到含有itcast的语句+在一个文件中,找到邮箱为163或者126的所有邮件地址

    文章目录 正则表达式概述 思考 场景1:在一个文件中,查找出itcast开头的语句 场景:在一个文件中,找到含有itcast的语句 场景:在一个文件中,找到邮箱为163或者126的所有邮件地址 正则表 ...

  9. linux 查看文件中数据类型,Linux下使用file命令确定文件中数据的类型-文件类型...

    青年是学习智慧的时期,中年是付诸实践的时期.--卢梭 在Linux系统中查看一个文件之前,要先确定该文件中数据的类型,之后再使用适当的命令或方法打开该文件. 与windows系统不同,在Linux系统 ...

最新文章

  1. 鸿蒙系统啥时候发布新手机,鸿蒙系统新手机面世还有多远?明年3月发布的华为P40可能搭载...
  2. 通过QQ或者QQ帮助别人学习Lync汇总
  3. python编程语言基础
  4. JavaScript正则表达式
  5. 信息收集 ——情报分析
  6. MiniDao支持ID自增主键策略,使用讲解
  7. Redis的相关命令
  8. vue 监听对象里的特定数据
  9. css表示屏幕宽度和高度
  10. linux中搭建java开发环境
  11. 调查问卷java源码_2020年Java技术趋势
  12. vmaware 安装chrome OS 系统教程
  13. Word 2007书籍排版完全手册
  14. 计算机组装与维护标准教程(2010-2012版)电子教材,计算机组装与维护标准教程(2015—2018版)...
  15. 实验一 第1关:从自然数中取3个数进行组合之循环算法
  16. html动画人物走路,CSS3动画中的steps(),制作人物行走动画
  17. matlab roundn函数_columns函数的使用方法 matlab中round函数具体用法
  18. java解析word 波浪线,word页面边框双波浪线
  19. 华为计算机电话号码魔术,看完这6个操作,我终于相信华为手机真的有魔法!...
  20. 目前网络环境介绍目前网络环境

热门文章

  1. Qt 读取多行文本框中的内容
  2. PON---无源光网络
  3. linux 开机 找不到 文件系统 下载文件系统就好了,根文件系统构建和实验过程
  4. python入门(坐标相加)
  5. 企业怎样制定网络中断弹性计划
  6. 爬虫用的wkhtmltopdf windows安装测试——Html转pdf工具
  7. 12月21日世界末日==人生末日?
  8. iOS系统整体框架及类继承框架图
  9. 波的简单知识(声波为例)
  10. 2022-9-18把Trie搞出来来,开心开心开心!!!!