textread
从文本文件读取数据;写入多个输出
请注意
textread
不建议使用。使用textscan
代替。
语法
[A, B, C,…= textread(文件名,格式)
[A, B, C,…= textread(文件名,格式,N)
[…= textread(…,param,value,…)
描述
[A, B, C,…= textread(文件名,格式)
从文件中读取数据文件名
变成变量一个
,B
,C
,等等,使用指定的格式
,直到整个文件被读取。的文件名
而且格式
输入被指定为字符向量。textread
对于读取具有已知格式的文本文件非常有用。textread
处理固定格式和自由格式文件。
请注意
当读取大型文本文件、从文件中的特定点读取数据或将文件数据读取到单元格数组(而不是多个输出)时,您可能更喜欢使用textscan
函数。
textread
匹配并转换输入中的一组字符。每个输入字段被定义为一组非空白字符,扩展到下一个空白或分隔符字符,或扩展到字段的最大宽度。重复的分隔符字符是重要的,而重复的空白字符被视为一个字符。
的格式
Input指定为字符向量,决定返回参数的数量和类型。的内容所指示的项的数目格式
.格式
万博1manbetx支持C语言的转换说明符和约定的子集fscanf
例行公事。值格式
都列在下表中。中的空白字符格式
将被忽略。
格式 |
行动 |
输出 |
---|---|---|
文字 (普通字符) |
忽略匹配的字符。例如,在一个文件中 |
没有一个 |
% d |
读取有符号整数值。 |
双数组 |
% u |
读取一个整数值。 |
双数组 |
% f |
读取一个浮点值。 |
双数组 |
% s |
读取空格或分隔符分隔的文本。 |
字符向量的单元格数组 |
%问 |
阅读双引号文本,忽略引号。 |
字符向量的单元格数组 |
% c |
读取字符,包括空白。 |
字符数组 |
%[…] |
读取包含括号中指定的字符的最长字符组。 |
字符向量的单元格数组 |
% ^[…] |
读取包含括号中未指定字符的最长非空字符组。 |
字符向量的单元格数组 |
% *…… |
指定的匹配字符忽略 |
没有输出 |
% w… |
指定的读取字段宽度 |
[A, B, C,…= textread(文件名,格式,N)
读取数据,重用字符向量中指定的格式格式
,N
次,N
大于零的整数。如果N
小于0,textread
读取整个文件。
[…= textread(…,param,value,…)
定制textread
使用参数/值
对,如下表所示。
参数 |
价值 |
行动 |
|
---|---|---|---|
bufsize |
正整数 |
指定字符向量的最大长度,以字节为单位。默认是 |
|
commentstyle |
matlab |
忽略后面的字符 |
|
commentstyle |
壳牌 |
忽略后面的字符 |
|
commentstyle |
c |
忽略中间的字符 |
|
commentstyle |
c++ |
忽略后面的字符 |
|
分隔符 |
一个或多个字符 |
充当元素之间的分隔符。默认值为none。 |
|
emptyvalue |
标量的两倍 |
读取带分隔符的文件时赋给空单元格的值。默认值为0。 |
|
endofline |
单字符或 |
表示一行结束的字符。 默认值由文件确定 |
|
expchars |
指数字 |
默认是 |
|
headerlines |
正整数 |
忽略文件开头指定的行数。 |
|
空格 |
以下列表中的任何一个: |
将字符向量处理为空白。默认是 |
|
' ' |
空间 |
请注意
当textread
读一个连续的系列空格
值,它把它们当作一个空白。当它读取一个连续的序列时分隔符
值时,它将每个值视为单独的分隔符。
例子
例1 -使用%读取Free Format File中的所有字段
第一行mydata.dat
是
萨利第一层12.34 45是的
方法将文件的第一行读取为自由格式文件%
格式。
[name, types, x, y, answer] = textread('mydata.dat',…'%s %s %f %d %s', 1)
返回
names = 'Sally' types = 'Level1' x = 12.34000000000000 y = 45 answer = 'Yes'
例2 -读取为固定格式文件,忽略浮点值
第一行mydata.dat
是
萨利第一层12.34 45是的
将文件的第一行读取为固定格式文件,忽略浮点值。
[names, types, y, answer] = textread('mydata.dat',…'%9c %6s %*f %2d %3s', 1)
返回
名字=莎莉类型= 'Level1' y = 45答案= 'Yes'
% * f
在格式
原因textread
要忽略浮点值,在本例中,12.34
.
例3 -读取时使用文字忽略匹配的字符
第一行mydata.dat
是
Sally Type1 12.34 45是的
读取文件的第一行,忽略字符类型
在第二个领域。
[names, typenum, x, y, answer] = textread('mydata.dat',…'%s '类型%d %f %d %s'
返回
names = 'Sally' typenum = 1 x = 12.34000000000000 y = 45 answer = 'Yes'
指定% d型
在格式
导致字符类型
在要忽略的第二个字段中,第二个字段的其余部分被读取为有符号整数,在这种情况下,1
.
例4 -指定填充空单元格的值
对于包含空单元格的文件,使用emptyvalue
参数。假设文件data.csv
包含:
1、2、3、4、6 7,8,9,11,12
读取文件南
填充任何空的单元格:
data = textread(“data.csv”,“,”分隔符 ', ',', ...“emptyvalue”,南);
例5 -将文件读入字符向量的单元格数组
读取文件fft.m
变成一个由字符向量组成的单元格数组。
文件= textread('fft. txt ')M ', '%s', '分隔符','\n',…“空白”、“);
提示
如果要在文本中保留前导和尾随空格,请使用空格
参数如下所示:
textread('myfile.txt', '%s', 'whitespace', ") ans = '保留空格的示例'