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

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)的更多相关文章

  1. Matlab 从入门到精通 Chapter11 文件读取I/O

    11.1 工作空间数据读取 将工作空间的变量保存为文件,可以使用save命令.  save('filename') 将文件保存在当前目录下,文件名为filename.mat save('filenam ...

  2. 13、如何拆分含有多种分隔符的字符串 14、如何判断字符串a是否以字符串b开头或结尾 15、如何调整字符串中文本的格式 16、如何将多个小字符串拼接成一个大的字符串

    13.如何拆分含有多种分隔符的字符串 import re s = "23:41:2314\1234#sdf\23;" print(re.split(r'[#:\;]+',s))   ...

  3. 怎么统计指定文件夹下含有.xml格式的文件数目

    如何统计指定文件夹下含有.xml格式的文件数目?如题 ------解决思路----------------------Directory.GetFiles(@"路径", " ...

  4. FileFilter 遍历某个目录下文件名含有某个字符的文件

    由于IIS版本的升级,造成了文件名中含有“+”的特殊字符的文件(多数是图片)在网页中不能被访问,于是必须查找当前目录下含有多少这样的文件,从而制定最佳的解决方案. 废话少说,直接上核心代码: publ ...

  5. 使用 matlab 产生GK101任意波数据文件的方法

    一.引言 MATLAB是由美国mathworks公司发布的主要面对科学计算.可视化以及交互式程序设计的高科技计算环境.它不但包含高效的数值计算.数据处理能力,而且简单易用,是工程师日常研发过程中不可缺 ...

  6. CoreJava_线程并发(堵塞队列):在某个目录下搜索含有某keyword的文件

    Java多线程编程是很考验一个程序猿水平的. 传统的WEB程序中.由于框架提供了太多的健壮性.并发性.可靠性的支持,所以我们都是将全部的注意力放到了业务实现上.我们不过依照业务逻辑的要求.不停的积累自 ...

  7. scanf从文件中读入,printf写入到文件

    重定向方式读写文件 #include <stdio.h> #define LOCAL int main() { #ifdef LOCAL freopen("input.txt&q ...

  8. python学习——读取染色体长度(六:读取含有染色体长度的文件)

    含有染色体长的文件chr_len.txt chr1 10chr2 20chr3 30chr4 40chr5 50 python脚本 #传递命令行参数 import sys # 导入模块 # 从命令行获 ...

  9. 路径或文件名中含有中文的jar文件双击启动不了 -> Java7的Bug?

    至从安装了java7后,才发现部分可执行的jar文件双击都启动不了了. 比如所有的jar文件放在桌面上双击启动不了. 比如所有的文件名中含有中文的jar文件双击启动不了. 比如一个 abc.jar 放 ...

随机推荐

  1. MySQL数据库集群进行正确配置步骤

    MySQL数据库集群进行正确配置步骤 2010-06-09 10:47 arrowcat 博客园 字号:T | T 我们今天是要和大家一起分享的是对MySQL数据库集群进行正确配置,我前两天在相关网站 ...

  2. HTML5商城开发四 多图或多商品的水平滚动展示

    一.效果图 二.实现 样式: .horz_scroll { float: left; width: 20px; height: 130px; padding-top: 100px; padding-l ...

  3. QT 网络编程二(UDP版本)

    QT的UdpSocket接收消息使用原则 第一步:new一个UdpSocket 第二步:调用UdpSocket的bind方法,同时指定端口号 第三步:使用connect将接收消息函数和UdpSocke ...

  4. Java 并发工具包 java.util.concurrent 用户指南

    1. java.util.concurrent - Java 并发工具包 Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包.这个包包含有一系列能够让 Ja ...

  5. 迭代和递归 - leetcode 206. Reverse Linked List

    Reverse Linked List,一道有趣的题目.给你一个链表,输出反向链表.因为我用的是JavaScript提交,所以链表的每个节点都是一个对象.例如1->2->3,就要得到3-& ...

  6. redis性能测试tcp socket and unix domain

    UNIX Domain Socket IPC socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket.虽然网络socke ...

  7. HTML5+JS 《五子飞》游戏实现(一)规则

    很久没写文章了,这个游戏其实已经写了有段时间了,一直没有完善,赶在新年之际,分享给大家. 该<五子飞>游戏,不是平常大家所说的<五子棋>,这个玩法简单,是我们老家儿时常玩的一种 ...

  8. Javascript DOM操作实例

          最近在学DOM,但是还是没有办法很好的记住API,想找些例子来练习,网上的例子将一个个DOM对象方法挨个举例,并没有集合在一起用,效果不尽人意.所以自己写一份实例,顺便巩固下学到的知识. ...

  9. VC维含义

    VC维含义的个人理解 有关于VC维可以在很多机器学习的理论中见到,它是一个重要的概念.在读<神经网络原理>的时候对一个实例不是很明白,通过这段时间观看斯坦福的机器学习公开课及相关补充材料, ...

  10. 乱码电路(Garbled circuits)

    乱码电路(Garbled circuits)是Andrew Yao教授在上世纪80年代发明的一种很聪明的技术.它可以让两个人针对某个算式来计算答案,而不需要知道他们在计算式所输入的数字. 举个例子说, ...