主要内容

将数据写入文本文件

描述

例子

流(文件标识formatSpecA1,…,一个应用formatSpec到数组的所有元素A1,…按列顺序,并将数据写入文本文件。的调用中指定的编码方案打开外部文件

例子

流(formatSpecA1,…,一个格式化数据并在屏幕上显示结果。

例子

nbytes=流(___返回的字节数使用前面语法中的任何输入参数进行写入。

例子

全部折叠

打印多个数值和文字文本到屏幕上。

A1 = [9.9, 9900];A2 = [8.8, 7.7;...8800年,7700年);formatSpec ='X = %4.2f米或%8.3f mm\n';流(formatSpec A1, A2)
X等于8.80米,X等于8800.000毫米,X等于7.70米,X等于7700.000毫米

% 4.2度formatSpecInput指定输出的每一行中的第一个值是字段宽度为4位的浮点数,包括小数点后的两位数字。% 8.3度formatSpecInput指定输出的每一行中的第二个值是字段宽度为8位的浮点数,包括小数点后的三位数字。\ n是开始新行的控制字符。

显式地将带有分数的双精度值转换为整数值。

A = [1.02 3.04 5.06];流(“% d \ n”而圆(a));
1 3 5

% dformatSpec输入输出向量中的每个值,轮(a),作为有符号整数。\ n是开始新行的控制字符。

写一个指数函数的短表到一个名为exp.txt

X = 0:.1:1;A = [x;exp (x)];fileID = fopen(“exp.txt”' w ');流(文件标识,% 6 s % 12年代\ n“x”“exp (x)”);流(文件标识,“% 6.2 f % 12.8 f \ n”,);文件关闭(文件标识);

第一次调用打印标题文本x而且exp (x),第二次调用输出变量的值一个

如果您计划读取文件微软®记事本,使用“\ r \ n”而不是' \ n '移动到新的一行。例如,替换对的调用与以下:

流(文件标识,% 6 s % 12年代\ r \ n”“x”“exp (x)”);流(文件标识,' % 6.2 f % 12.8 f \ r \ n”,);

MATLAB®导入函数,所有UNIX®应用程序和微软文字处理软件和写字板识别' \ n '作为换行指示符。

方法查看文件的内容类型命令。

类型exp.txt
X exp(X) 0.00 1.00000000 0.10 1.10517092 0.20 1.22140276 0.30 1.34985881 0.40 1.49182470 0.50 1.64872127 0.60 1.82211880 0.70 2.01375271 0.80 2.22554093 0.90 2.45960311 1.00 2.71828183

将数据写入文件并返回写入的字节数。

写一个数据数组,一个,到一个文件,并获得字节数写道。

A =魔术(4);fileID = fopen(“myfile.txt”' w ');nbytes = fprintf(fileID,'%5d %5d %5d\n',)
Nbytes = 96

函数写入文件96字节。

关闭文件。

文件关闭(文件标识);

方法查看文件的内容类型命令。

类型(“myfile.txt”
16 5 9 4 2 11 7 14 3 10 6 15 13 8 12

显示超链接(MathWorks网站)在屏幕上。

url =“//www.tatmou.com”;sitename =“MathWorks网站”;流('%s\n'、url、sitename)

% sformatSpecInput表示变量的值url而且sitename,应打印为文本。

输入参数

全部折叠

文件标识符,指定为下列之一:

  • 获取的文件标识符打开外部文件

  • 1用于标准输出(屏幕)。

  • 2标准误差。

数据类型:

输出字段的格式,使用格式化操作符指定。formatSpec也可以包括普通文本和特殊字符。

如果formatSpec包括表示转义字符的文本,例如\ n,然后翻译转义字符。

formatSpec可以是单引号中的字符向量,或者从R2016b开始的字符串标量。

格式化操作符

格式化操作符以百分号开头,% gydF4y2Ba,并以转换字符结束。转换字符是必需的。还可以指定标识符、标志、字段宽度、精度和之间的子类型操作符% gydF4y2Ba以及转换字符。(操作符之间的空格无效,此处仅为可读性起见)。

转换字符

此表显示将数字和字符数据格式化为文本的转换字符。

值类型 转换 细节

整数,签署了

% d%我

以10为底的

整数,无符号

% u

以10为底的

%啊

8进制(八进制)

% x

以16为基数(十六进制),小写字母一个- - - - - -f

% X

一样% x,大写字母一个- - - - - -F

浮点数

% f

定点记数法(使用精确运算符指定小数点后的位数。)

% e

指数符号,例如3.141593 e + 00(使用精确运算符指定小数点后的位数。)

% E

一样% e,但大写,如3.141593 e + 00(使用精确运算符指定小数点后的位数。)

% g

更紧凑的% e% f,不带后面的零(使用精确运算符指定有效数字的数量。)

% G

更紧凑的% E% f,不带后面的零(使用精确运算符指定有效数字的数量。)

字符或字符串

% c

单个字符

% s

字符向量或字符串数组。的类型与输出文本的类型相同formatSpec

可选的运营商

可选标识符、标志、字段宽度、精度和子类型操作符进一步定义了输出文本的格式。

  • 标识符

    处理函数输入参数的顺序。使用语法n,在那里n表示函数调用中其他输入参数的位置。

    例子:('%3$s %2$s %1$s %2$s','A','B','C')打印输入参数“一个”“B”“C”如下:b选项b。

    注意:如果输入参数是数组,则不能使用标识符从该输入参数指定特定数组元素。

  • 旗帜

    “- - -”

    对齐。
    例子:% -5.2度
    例子:% -10年代

    “+”

    对于任何数值,总是打印一个符号字符(+或-)。
    例子:% + 5.2 f
    文本对齐。
    例子:% + 10 s

    ' '

    在值之前插入一个空格。
    例子:% 5.2度

    ' 0 '

    填充到字段宽度,值前为零。
    例子:% 05.2度

    “#”

    修改选定的数值转换:

    • %啊% x,或% X、打印00 x,或0 x前缀。

    • % f% e,或% E,即使精度为0,也可打印小数点。

    • % g% G,不移除尾随零或小数点。

    例子:% # 5.0度

  • 字段宽度

    打印的最小字符数。字段宽度操作符可以是数字或星号()来引用输入参数。

    当你指定作为字段宽度操作符,其他输入参数必须同时提供宽度和要打印的值。宽度和值可以是参数对,也可以是数值数组中的参数对。与作为字段宽度操作符,您可以使用不同的宽度打印不同的值。

    例子:输入参数(intmax ' % 12 d ')都相当于(' % * d ', 12日intmax)

    例子:输入参数('%*d',[2 10 5 100])返回“100”,有两个名额供10还有五个位置One hundred..作为一种替代方法,您还可以将字段宽度和值指定为多个参数,如(' % * d ', 2, 10, 5100)

    除非flags另有指定,否则函数将在值前用空格填充字段宽度。

  • 精度

    % f% e,或% E

    小数点右边的位数
    例子:“% .4f”打印π作为“3.1416”

    % g% G

    有效位数
    例子:“% .4g”打印π作为“3.142”

    精确运算符可以是数字,也可以是星号()指一个论点。

    当你指定作为字段精度操作符,其他输入参数必须同时提供精度和要打印的值。精度和值可以是参数对,也可以是数值数组中的参数对。与作为精度操作符,您可以将不同的值打印到不同的精度。

    当你指定* . *作为字段宽度和精度操作符,必须以三元组的形式指定字段宽度、精度和值。

    例子:输入参数(' % .4f ',π)都相当于(' %。* f ' 4π)

    例子:输入参数(% 6.4 f,π)都相当于(' % *。* f ', 6日4π)

    例子:输入参数(' % *。* f ', 6日4π,9日,6日,exp (1))返回3.1416 - 2.718282的,9而且6作为场的宽度和精度的输出实验(1)

    请注意

    如果为浮点值指定的精度操作符超过输入数值数据类型的精度,则结果可能与输入值的精度不匹配。结果取决于您的计算机硬件和操作系统。

  • 子类型

    可以使用子类型操作符将浮点值打印为其八进制、十进制或十六进制值。子类型操作符紧接在转换字符的前面。下表显示了可以使用子类型的转换。

    输入值类型

    子类型和转换字符

    输出值类型

    浮点数

    % bx% bX
    %博
    % bu

    双精度十六进制、八进制或十进制值
    例子:% bx打印π作为400921 fb54442d18

    % tx% tX
    %,
    %你

    单精度十六进制、八进制或十进制值
    例子:% tx打印π作为40490身上

格式化操作符之前或之后的文本

formatSpec还可以在百分号之前包含额外的文本,% gydF4y2Ba,或转换字符后。文本可以是:

  • 普通文字打印。

  • 不能作为普通文本输入的特殊字符。此表显示了如何在中表示特殊字符formatSpec

    特殊字符

    表示

    单引号

    百分比的性格

    % %

    反斜杠

    \\

    报警

    、一个

    退格

    \ b

    换页

    \ f

    新行

    \ n

    回车

    r \

    水平选项卡

    \ t

    垂直制表符

    v \

    Unicode字符®数值可以用十六进制数表示,N

    \ xN

    例子:sprintf(“\ x5A”)返回“Z”

    Unicode数值可以用八进制数表示的字符。N

    \ N

    例子:sprintf (\ 132 ')返回“Z”

格式化操作符转换的显著行为

  • 数值转换只输出复数的实分量。

  • 如果指定的转换不适合数据,例如数值的文本转换,MATLAB将覆盖指定的转换,并使用% e

    例子:' % s '转换π3.141593 e + 00

  • 如果应用文本转换(或% c% s)转换为整数值,MATLAB将对应于有效字符代码的值转换为字符。

    例子:' % s '转换[65 66 67]美国广播公司

数值或字符数组,指定为标量、向量、矩阵或多维数组。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符

输出参数

全部折叠

字节数写入,作为标量返回。写入文件时,nbytes由字符编码决定。当将数据打印到屏幕上时,nbytes显示在屏幕上的字符数。

提示

  • 读取函数的格式说明符sscanf而且fscanf不同于书写功能的格式sprintf而且.读取函数不支持精度字段。金宝appwidth字段指定写入的最小值,但读取的最大值。

  • 如果指定了无效的格式化操作符或特殊字符,则打印到无效操作符或字符之前的所有文本,并丢弃其余文本。

    例子:如果formatSpec'value = %z',然后打印“价值= '因为% z不是格式化操作符。

    例子:如果formatSpec'字符\x99999 = %s',然后打印“性格”因为\ x99999不是有效的特殊字符。

参考文献

[1]克尼根,B. W.和D. M.里奇,C语言,第二版,Prentice-Hall, Inc., 1988。

[2] ANSI规范X3.159-1989:“编程语言C,”ANSI, 1430 Broadway, New York, NY 10018。

扩展功能

R2006a之前介绍