matlab中textscan函数的用法,matlab中textscan format内容的用法.doc

Matlab中的textread textscan读取文本文件

2011/02/17 06:58 A.M.

From:/blog/static/34776762011013111354235/

1.MATLAB从文本文件中读取格式化的数据函数是textread。

调用方式

[A,B,C,...] = textread('filename','format')

[A,B,C,...] = textread('filename','format',N)

[...] = textread(...,'param','value',...)

输入参数

'filename' 需要读取的数据文件

'format' 每行各个数据格式

N 读取数据时使用N次。

当调用textread函数时会按照指定的格式从'filename'中读取数据,并将数据分别保存在变量A,B,C中,直到文件内容被读完为止。

下面是读取c:\中的test3.txt文件操作。

>> !type c:\test3.txt

Q1 1 2

Q2 3 4

>> [a1 a2 a3]=textread('c:\test3.txt','%s %f %f')

a1 =

'Q1'

'Q2'

a2 =

1

3

a3 =

2

4

这样文件test3.txt中的每行分别读入变量a1、a2、a3。

2.TextScan函数读取文本数据

对于具有多行文字说明文本数据文件,最好的办法则是用textscan,或者fscanf读取。

调用方式

C = textscan(fid, 'format')

C = textscan(fid, 'format', N)

C = textscan(fid, 'format', param, value, ...)

C= textscan(fid, 'format', N, param, value, ...)

输入参数

fid 为fopen命令返回的文件标识符

format 是一个字符串变量,表示读取数据及数据转换的规则。Format中包含了多种方式,其内容如表6.5所示。

format内容

数据转换规则

说 明

%n

读取一个数字并转换为double

%d

读取一个数据并转换为int32

%d8

读取一个数据并转换为int8

%d16

读取一个数据并转换为int16

%d32

读取一个数据并转换为int32

%d64

读取一个数据并转换为int64

%u

读取一个数据并转换为uint32

%u8

读取一个数据并转换为uint8

%u16

读取一个数据并转换为uint16

%u32

读取一个数据并转换为uint32

%u64

读取一个数据并转换为uint64

%f4

读取一个数字并转换为double

%f32

读取一个数字并转换为float

%f64

读取一个数字并转换为double

%s

读取一个字符串

%q

读取一个可以是双引号括着的字符串

%c

读取一个字符,包括空格

%[…]

读取和括号中字符串相匹配的字符。读取操作在首次遇到不匹配的字符和空格时停止。例如%[mus]把summer读成summ

%[^…]

读取和括号中字符串不匹配的字符。读取操作在首次遇到不匹配的字符和空格时停止。例如%[^mus]把summer读成er

Textscan所支持的数字单元宽度声明有两种,具体如表6.6所示。

表6.6 textscan支持的数据读入格式

名称

说明

N

读取包括小数点在内的N个数字或者遇到的分隔符,例如%5f32会把473.238读为473.2

N.D

读取包括小数点在内的N个数字或者遇到的分隔符,返回的数字在小数点后有D位数,例如%7.2f会把473.238读为473.23

下面建立新文件test1.txt,文件前2行是字符串,后三行是数组,首先查看其内容。

>> !type c:\test1.txt

a1

a2

1

2

注意,在Command窗口下键入“!”后就可以直接执行Dos命令

>>file=fopen('c:\test1.txt','r');%打开需要读取的文件

>> str1=textscan(file,'%s',2) ;

>> str1{1}

ans =

'a1'

'a2

如果需要读取第3行、第4行可以执行下面命令。

>> da=textscan(file,'%f',[3 4])

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值