2 回答
TA贡献1812条经验 获得超5个赞
headerlines表示开头跳过几行(有的文件开头有说明文字)
delimiter 设置分隔符,用来隔开多个数据,whitespace表示把这个字符作为空格来处理 区别是分隔符更严格,只要读到这个字符,当前的这个数据就截止了,空格则不一定,具体情况自己试验一下了
help里说的很详细,懂英文的话自己看下
textread
Read data from text file; write to multiple outputs
Note textread is not recommended. Use textscan to read data from a text file.
Graphical Interface
As an alternative to textread, use the Import Wizard. To activate the Import Wizard, select Import Data from the File menu.
Syntax
[A,B,C,...] = textread('filename','format')
[A,B,C,...] = textread('filename','format',N)
[...] = textread(...,'param','value',...)
Description
[A,B,C,...] = textread('filename','format') reads data from the file 'filename' into the variables A,B,C, and so on, using the specified format, until the entire file is read. The filename and format inputs are strings, each enclosed in single quotes. textread is useful for reading text files with a known format. textread handles both fixed and free format files.
Note When reading large text files, reading from a specific point in a file, or reading file data into a cell array rather than multiple outputs, you might prefer to use the textscan function.
textread matches and converts groups of characters from the input. Each input field is defined as a string of non-white-space characters that extends to the next white-space or delimiter character, or to the maximum field width. Repeated delimiter characters are significant, while repeated white-space characters are treated as one.
The format string determines the number and types of return arguments. The number of return arguments is the number of items in the format string. The format string supports a subset of the conversion specifiers and conventions of the C language fscanf routine. Values for the format string are listed in the table below. White-space characters in the format string are ignored.
format
Action
Output
Literals
(ordinary characters)
Ignore the matching characters. For example, in a file that has Dept followed by a number (for department number), to skip the Dept and read only the number, use 'Dept' in the format string.
None
%d
Read a signed integer value.
Double array
%u
Read an integer value.
Double array
%f
Read a floating-point value.
Double array
%s
Read a white-space or delimiter-separated string.
Cell array of strings
%q
Read a double quoted string, ignoring the quotes.
Cell array of strings
%c
Read characters, including white space.
Character array
%[...]
Read the longest string containing characters specified in the brackets.
Cell array of strings
%[^...]
Read the longest nonempty string containing characters that are not specified in the brackets.
Cell array of strings
%*...
instead of %
Ignore the matching characters specified by *.
No output
%w...
instead of %
Read field width specified by w. The %f format supports %w.pf, where w is the field width and p is the precision.
[A,B,C,...] = textread('filename','format',N) reads the data, reusing the format string N times, where N is an integer greater than zero. If N is smaller than zero, textread reads the entire file.
[...] = textread(...,'param','value',...) customizes textread using param/value pairs, as listed in the table below.
param
value
Action
bufsize
Positive integer
Specifies the maximum string length, in bytes. Default is 4095.
commentstyle matlab
Ignores characters after %.
commentstyle shell
Ignores characters after #.
commentstyle c
Ignores characters between /* and */.
commentstyle c++
Ignores characters after //.
delimiter
One or more characters
Act as delimiters between elements. Default is none.
emptyvalue
Scalar double
Value given to empty cells when reading delimited files. Default is 0.
endofline
Single character or '\r\n'
Character that denotes the end of a line.
Default is determined from file
expchars
Exponent characters
Default is eEdD.
headerlines
Positive integer
Ignores the specified number of lines at the beginning of the file.
whitespace
Any from the list below:
Treats vector of characters as white space. Default is ' \b\t'.
' '
\b
\n
\r
\t
Space
Backspace
Newline
Carriage return
Horizontal tab
Note When textread reads a consecutive series of whitespace values, it treats them as one white space. When it reads a consecutive series of delimiter values, it treats each as a separate delimiter.
Remarks
If you want to preserve leading and trailing spaces in a string, use the whitespace parameter as shown here:
textread('myfile.txt', '%s', 'whitespace', '')
ans =
' An example of preserving spaces '
Examples
Example 1 — Read All Fields in Free Format File Using %
The first line of mydata.dat is
Sally Level1 12.34 45 Yes
Read the first line of the file as a free format file using the % format.
[names, types, x, y, answer] = textread('mydata.dat', ...
'%s %s %f %d %s', 1)
returns
names =
'Sally'
types =
'Level1'
x =
12.34000000000000
y =
45
answer =
'Yes'
Example 2 — Read as Fixed Format File, Ignoring the Floating Point Value
The first line of mydata.dat is
Sally Level1 12.34 45 Yes
Read the first line of the file as a fixed format file, ignoring the floating-point value.
[names, types, y, answer] = textread('mydata.dat', ...
'%9c %5s %*f %2d %3s', 1)
returns
names =
Sally
types =
'Level1'
y =
45
answer =
'Yes'
%*f in the format string causes textread to ignore the floating point value, in this case, 12.34.
Example 3 — Read Using Literal to Ignore Matching Characters
The first line of mydata.dat is
Sally Type1 12.34 45 Yes
Read the first line of the file, ignoring the characters Type in the second field.
[names, typenum, x, y, answer] = textread('mydata.dat', ...
'%s Type%d %f %d %s', 1)
returns
names =
'Sally'
typenum =
1
x =
12.34000000000000
y =
45
answer =
'Yes'
Type%d in the format string causes the characters Type in the second field to be ignored, while the rest of the second field is read as a signed integer, in this case, 1.
Example 4 — Specify Value to Fill Empty Cells
For files with empty cells, use the emptyvalue parameter. Suppose the file data.csv contains:
1,2,3,4,,6
7,8,9,,11,12
Read the file using NaN to fill any empty cells:
data = textread('data.csv', '', 'delimiter', ',', ...
'emptyvalue', NaN);
Example 5 — Read M-File into a Cell Array of Strings
Read the file fft.m into cell array of strings.
file = textread('fft.m', '%s', 'delimiter', '\n', ...
'whitespace', '');
TA贡献1839条经验 获得超15个赞
一些低级的I/O处理及相关介绍
函数 功能
fclose 关闭打开的文件
feof 判断是否为文件结尾
ferror 文件输入输出中的错误查找
fgetl 读入一行,忽略换行符
fgets 读入一行,直到换行符
fopen 打开文件,或者获取打开文件的信息
fprintf 格式化输入数据到文件
fread 从文件中读取二进制数据
frewind 将文件的位置指针移至文件开头位置
fscanf 格式化读入
fseek 设置文件位置指针
ftell 文件位置指针
fwrite 向文件中写入数据
下面重点介绍函数fprintf。该函数的调用格式如下:
count=fprintf(fid,format,A,...),该语句将矩阵A及后面其他参数中数字的实部以format指定的格式写入到fid指定的文件中,返回写入数据的字节数。
上面语句中,参数format由%开头,共可由4个部分组成,分别如下:
●标记(flag),为可选部分。
●宽度和精度指示,为可选部分。
●类型标志符,为可选部分。
●转换字符,为必需部分。
1.标记
标记用于控制输出的对齐方式,可以选择的内容如下
函数 功能 示例
负号(-) 在参数左侧进行判别 %-5.2 d
加号(+) 在数字前添加符号 %+5.2 d
空格 在数字前插入空格 %5.2 d
0 在数字前插入0 %0 5.2 d
2.宽度和精度指示
用户可以通过数字指定输出数字的宽度及精度,格式如下:
●o,指定数字的宽度;
●%6.2f,指定数字的宽度及精度;
●%.2f,指定数字的精度。
3.转换字符
转换字符用于指定输出的符号,可以选择的内容如下
标志符 意义
%c 输出单个字符
%d 输出有符号十进制数
%e 采用指数格式输出,采用小写字母e,如:3.1415e+00
%E 采用指数格式输出,采用大写字母E,如:3.1415E+00
%f 以定点数的格式输出
%g %e及%f 更紧凑的格式,不显示数字中无效的0
%G与%g相同,但是使用大写字母E
%i 有符号十进制数
%o 无符号八进制数
%s 输出字符串
%u 无符号十进制数
%x 十六进制数(使用小写字母a-f)
%X 十六进制数(使用大写字母A-F)
其中%o、%u、%x、%X支持使用子类型。
例如:
例13-7 fprintf格式化输出示例。
>>x=0:.1:1;
>>y=[x;exp(x)];
>>fid=fopen('exp.txt','wt');
>>fprintf(fid,'%6.2f.8f\n',y);
>>fclose(fid)
ans=
0
显示该文件:
>>typeexp.txt
0.00 1.00000000
0.10 1.10517092
…
0.90 2.45960311
1.00 2.71828183
f p r i n t f(1,'It''s Friday.\n')
It's Friday. 在该例中,利用1表示显示器,并且用两个单引号显示单引号,使用\n进行换行。在格式化输出中,这类符号称为转义符。MATLAB中的常用转义符如表下所示。
转义符 功能
\b 退格
\f 表格填充
\n 换行符
\r 回车
\t t a b
\\ \,反斜线
\''或'' ',单引号
%% %,百分号
添加回答
举报