1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > matlab读取txt文档三行数据库 Matlab中的textread textscan读取文本文件

matlab读取txt文档三行数据库 Matlab中的textread textscan读取文本文件

时间:2022-08-29 01:24:24

相关推荐

matlab读取txt文档三行数据库 Matlab中的textread textscan读取文本文件

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

读取一个数据并转换为int8

�6

读取一个数据并转换为int16

�2

读取一个数据并转换为int32

�4

读取一个数据并转换为int64

%u

读取一个数据并转换为uint32

%u8

读取一个数据并转换为uint8

%u16

读取一个数据并转换为uint16

%u32

读取一个数据并转换为uint32

%u64

读取一个数据并转换为uint64

读取一个数字并转换为double

�2

读取一个数字并转换为float

�4

读取一个数字并转换为double

%s

读取一个字符串

%q

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

%c

读取一个字符,包括空格

%[…]

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

%[^…]

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

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

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

名称

说明

N

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

N.D

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

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

>> !typec:\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])

;

>> da{1}

ans =

1

2

由于da是单元数据,下面将其转换为实数型。

>> cell2mat(da)

ans =

1

2

如果数据文件中有间隔符,需要忽略间隔符。

>> type c:\test3.txt

1, 1,

2

32, 3, 4

>> tt=fopen('c:\test3.txt');

>>var=textscan(tt,'%f%f %f', 'delimiter', ',')%

忽略‘,’

>> aa=cell2mat(var)

aa =

112

3234

结束时需要关闭文件

>> fclose(file)

>> !type c:\test2.txt

2 5 3 6

2 3 5

1 9 5 4 6

>> fid=fopen('c:\test2.txt');

>>for i=1:3 ,a{i}=fgets(fid);

end

>>fclose(fid);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。