Matlab中fprintf函数使用
目录
说明
示例
输出字面文本和数组值
将双精度值输出为整数
将表格数据写入文本文件
获取写入文件的字节数
在命令行窗口中显示超链接
fprintf函数将数据写入文本文件。
fprintf(fileID,formatSpec,A1,...,An)fprintf(formatSpec,A1,...,An)nbytes = fprintf(___)
说明
fprintf(fileID,formatSpec,A1,...,An) 按列顺序将 formatSpec 应用于数组 A1,...An 的所有元素,并将数据写入到一个文本文件。fprintf 使用在对 fopen 的调用中指定的编码方案。
fprintf(formatSpec,A1,...,An)设置数据的格式并在屏幕上显示结果。
nbytes = fprintf(___)使用前述语法中的任意输入参数返回fprintf所写入的字节数。
示例
输出字面文本和数组值
将多个数值和字面文本输出到屏幕。
A1 = [9.9, 9900];
A2 = [8.8, 7.7 ; ...8800, 7700];
formatSpec = 'X is %4.2f meters or %8.3f mm\n';
fprintf(formatSpec,A1,A2)
X is 9.90 meters or 9900.000 mm
X is 8.80 meters or 8800.000 mm
X is 7.70 meters or 7700.000 mm
formatSpec 输入中的 %4.2f 指定输出中每行的第一个值为浮点数,字段宽度为四位数,包括小数点后的两位数。formatSpec 输入中的 %8.3f 指定输出中每行的第二个值为浮点数,字段宽度为八位数,包括小数点后的三位数。\n 为新起一行的控制字符。
将双精度值输出为整数
显式将包含分式的双精度值转换为整数值。
a = [1.02 3.04 5.06];
fprintf('%d\n',round(a));
1
3
5
formatSpec 输入中的 %d 将向量 round(a) 中的每个值作为有符号整数输出。\n 为新起一行的控制字符。
将表格数据写入文本文件
将指数函数的短表写入到名为 exp.txt 的文本文件。
x = 0:.1:1;
A = [x; exp(x)];fileID = fopen('exp.txt','w');
fprintf(fileID,'%6s %12s\n','x','exp(x)');
fprintf(fileID,'%6.2f %12.8f\n',A);
fclose(fileID);
第一个对 fprintf 的调用输出标题文本 x 和 exp(x),第二个调用输出变量 A 的值。
如果打算使用 Microsoft® 记事本读取文件,请使用 '\r\n' 而不是 '\n' 移到新行。例如,将对 fprintf 的调用替换为下列项:
fprintf(fileID,'%6s %12s\r\n','x','exp(x)');
fprintf(fileID,'%6.2f %12.8f\r\n',A);
MATLAB® 导入函数、所有 UNIX® 应用程序以及 Microsoft Word 和写字板都将 '\n' 识别为换行指示符。
通过 type 命令查看文件的内容。
type exp.txtx exp(x)0.00 1.000000000.10 1.105170920.20 1.221402760.30 1.349858810.40 1.491824700.50 1.648721270.60 1.822118800.70 2.013752710.80 2.225540930.90 2.459603111.00 2.71828183
获取写入文件的字节数
将数据写入文件并返回所写入的字节数。将数据数组 A 写入文件并获取 fprintf 所写入的字节数。
A = magic(4);fileID = fopen('myfile.txt','w');
nbytes = fprintf(fileID,'%5d %5d %5d %5d\n',A)
nbytes = 96
fprintf 函数向文件中写入了 96 个字节。关闭文件。
fclose(fileID);
通过 type 命令查看文件的内容。
type('myfile.txt')16 5 9 42 11 7 143 10 6 1513 8 12 1
在命令行窗口中显示超链接
在屏幕上显示超链接(MathWorks公式网站)。
url = 'https://www.mathworks.com';
sitename = 'The MathWorks Web Site';fprintf('<a href = "%s">%s</a>\n',url,sitename)
formatSpec输入中的%s指示变量url和sitename的值应作为文本输出。
文件标识符,指定为下列值之一:
从fopen获取的文件标识符。
1
表示标准输出(屏幕)。2
表示标准错误。
输出字段的格式,使用格式化操作符指定。formatSpec 还可以包括普通文本和特殊字符。
formatSpec可以是用单引号引起来的字符向量,从 R2016b开始,也可以是字符串标量。
格式化操作符
格式化操作符以百分号 % 开头,以转换字符结尾。转换字符是必需的。也可以在 % 和转换字符之间指定标识符、标志、字段宽度、精度和子类型操作符。(操作符之间的空格无效,在这里显示空格只是为了便于阅读。)
转换字符
此表显示了要将数值和字符数据格式化为文本的转换字符。
值类型 | 转换 | 详细信息 |
---|---|---|
有符号整数 |
%d 或 %i |
以 10 为基数 |
无符号整数 |
%u |
以 10 为基数 |
%o |
以 8 为基数(八进制) |
|
%x |
以 16 为基数(十六进制),小写字母 a–f |
|
%X |
与 %x 相同,大写字母 A–F |
|
浮点数 |
%f |
定点记数法(使用精度操作符指定小数点后的位数。) |
%e |
指数记数法,例如 3.141593e+00(使用精度操作符指定小数点后的位数)。 |
|
%E |
与 %e 相同,但为大写,例如 3.141593E+00(使用精度操作符指定小数点后的位数)。 |
|
%g |
更紧凑的 %e 或 %f,不带尾随零(使用精度操作符指定有效数字位数。) |
|
%G |
更紧凑的 %E 或 %f,不带尾随零(使用精度操作符指定有效数字位数。) |
|
字符或字符串 |
%c |
单个字符 |
%s |
字符向量或字符串数组。输出文本的类型与 formatSpec 的类型相同。 |
可选操作符
可选标识符、标志、字段宽度、精度和子类型操作符进一步定义了输出文本的格式。
标识符
处理函数输入参数的顺序。使用语法 n$,其中n代表函数调用中其他输入参数的位置。
注意:如果输入参数为数组,则不能使用标识符指定该输入参数中的特定数组元素。
标志
|
左对齐。 |
|
始终为任何数值输出符号字符(+ 或 –)。 |
|
在值之前插入空格。 |
|
在值之前补零以填充字段宽度。 |
|
修改选定的数值转换:
示例: |
字段宽度
要输出的最低字符数。字段宽度操作符可以是数字,也可以是指向输入参数的星号 (*
)。
当将 *
指定为字段宽度操作符时,其他输入参数必须指定打印宽度和要打印的值。宽度和值可以是参数对组,也可以是数值数组中的对组。使用 *
作为字段宽度操作符时,可以打印具有不同宽度的不同值。
除非标志另行指定,否则该函数使用空格填充值之前的字段宽度。
精度
对于 %f、%e 或 %E |
小数点右侧的位数 |
对于 %g 或 %G |
有效位数 |
精度操作符可以是数字,也可以是指向参数的星号 (*
)。
当将 *
指定为字段精度操作符时,其他输入参数必须指定打印精度和要打印的值。精度和值可以是参数对组,也可以是数值数组中的对组。使用 *
作为精度操作符时,可以打印具有不同精度的不同值。
将*.*指定为字段宽度和精度操作符时,必须以三元组形式指定字段宽度、精度和值。
注意:如果为浮点值指定的精度操作符所表示的精度超出输入数值数据类型的精度,则在指定精度内,结果与输入值可能不匹配。结果取决于计算机硬件和操作系统。
子类型
可以使用子类型操作符将浮点值显示为八进制、十进制或十六进制值。子类型操作符紧邻转换字符之前。此表显示了可使用子类型的转换。
输入值类型 |
子类型和转换字符 |
输出值类型 |
---|---|---|
浮点数 |
%bx 或 %bX |
双精度十六进制、八进制或十进制值 |
%tx 或 %tX |
单精度十六进制、八进制或十进制值 |
格式化操作符前或后的文本
formatSpec还可以在百分号 % 前添加其他文本,或者在转换字符后添加其他文本。文本可以为:
要打印的普通文本。
无法作为普通文本输入的特殊字符。此表显示了如何在 formatSpec 中表示特殊字符。
特殊字符
表示形式
单引号
''
百分比字符
%%
反斜杠
\\
警报
\a
退格符
\b
换页符
\f
换行符
\n
回车符
\r
水平制表符
\t
垂直制表符
\v
其 Unicode® 数值可以通过十六进制数
N
表示的字符\xN
示例:sprintf('\x5A') 返回 'Z'
其 Unicode 数值可以通过八进制数
N
表示的字符\N
示例:sprintf('\132') 返回 'Z'
使用格式化操作符进行转换时要注意的行为
数值转换仅输出复数的实部。
如果指定不适合数据的转换(例如数值的文本转换),MATLAB 将改写指定的转换并使用%e。
如果对整数值应用文本转换(%c 或 %s),MATLAB 会将对应于有效字符代码的值转换为字符。
提示
读取函数 sscanf 和 fscanf 的格式设定符不同于写入函数sprintf 和 fprintf 的格式。读取函数不支持精度字段。宽度字段在写入函数中指定最小值,但在读取函数中指定最大值。
Matlab中fprintf函数使用相关推荐
- matlab中fprintf函数的具体使用方法
matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...
- **matlab中fprintf函数简单用法**
1.fprintf函数:将数据按指定格式写入到文本文件中. 2.用法说明: fprintf(fid, format, variables): 按指定的格式将变量的值输出到屏幕或指定文件: fid为文件 ...
- matlab fopen函数的用法,matlab中fopen函数与fprintf用法
matlab中fopen函数在指定文件打开的实例如下: *1)"fopen"打开文件,赋予文件代号. 语法1:FID= FOPEN(filename,permission) 用指定 ...
- Matlab中bwmorph函数的使用
Matlab中bwmorph函数的使用 Matlab中提供了一个基于形态学的处理函数,即以膨胀.腐蚀等操作为基础,其语法格式如下: bw2=bwmorph(bw1,operation,n); 其中bw ...
- 9.matlab中repmat函数
来源: matlab中repmat函数的用法 - CSDN博客 https://blog.csdn.net/anqier1009/article/details/5214978 B = repmat( ...
- 如何在Matlab中获取函数参数的数目?
本图文详细介绍了Matlab中获取函数参数数目的方法.
- matlab s% d%,matlab中var函数的翻译For N-D arrays, VAR operates along the first
matlab中var函数的翻译For N-D arrays, VAR operates along the first matlab中var函数的翻译 For N-D arrays, VAR oper ...
- 关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法
关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 参考文章: (1)关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 (2)https://www.cn ...
- Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17)
Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17) 转载▼ 标签: 杂谈 分类: Matlab应用 我们在统计数据处理时,经常计算一个样本的概率密度估计,也就是 ...
- cumsum在matlab中,matlab中cumsum函数和sum函数详解
调用格式及说明 matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 调用格式及说明 ...
最新文章
- ***Xcode Interface Builder或Storyboard中可建立那两种连接?
- 针对SharePointFarm场时安装部署OWA的步骤
- uniapp封装网络请求_八张图带你走进“通过一个完美请求封装一个网络模块”
- 20140625 程序 进程 线程 物理存储器
- C语言显示USDOS汉字库
- [python]No module named ‘bs4‘
- 【嵌入式】非操作系统下GPIO口控制器及LED灯编程
- Movavi Photo Editor零失败更改图片背景教程
- Centos7.0升级python 2.x到3.x
- 电信悦meYMB0300-CW-卡刷-刷机固件
- 智能座舱人机交互发展趋势
- 晚风心里吹-粤语歌词谐音
- 公司测试部门来了个00后卷王,老油条感叹真干不过,不过.....
- cassandra日常维护之nodetool repair
- MATLAB学习笔记5:绘图基础与数据可视化(中)
- 如何连接ftp服务器
- 史上最柔软美女是谁?
- Android调用天气预报所对应的城市Id
- 医院如何发送门诊短信(附模板内容)
- 优雅书写Controller(参数验证+统一异常处理)