sprintf和fprintf
转自:http://blog.sina.com.cn/s/blog_797ba6c90100s8s9.html
字 符 串 转 换 |
|
abs |
字符串到ASCII转换 |
dec2hex |
十进制数到十六进制字符串转换 |
fprintf |
把格式化的文本写到文件中或显示屏上 |
hex2dec |
十六进制字符串转换成十进制数 |
hex2num |
十六进制字符串转换成IEEE浮点数 |
int2str |
整数转换成字符串 |
lower |
字符串转换成小写 |
num2str |
数字转换成字符串 |
setstr |
ASCII转换成字符串 |
sprintf |
用格式控制,数字转换成字符串 |
sscanf |
用格式控制,字符串转换成数字 |
str2mat |
字符串转换成一个文本矩阵 |
str2num |
字符串转换成数字 |
upper |
字符串转换成大写 |
在许多情况下,希望把一个数值嵌入到字符串中。几个字符串转换可完成这个任务。
» rad=2.5; area=pi*rad^2;
» t=[' A circle of radius ' num2str(rad) ' has an area of ' num2str(area) ' . ' ] ;
» disp(t)
A circle of radius 2.5 has an area of 19.63.
这里函数num2str用来把数值转换成字符串,字符串连接用来把所转换的数嵌人到一个字符串句子中。按类似方式,int2str把整数转换成字符串。无论是num2str还是int2str都调用函数sprintf,它用类似C语言语法把数值转换成字符串。
函数fprintf经常是函数disp的一个有用替换,由于它提供了对结果更多的控制。当准备把格式化的数据写到一个文件中去时,按缺省它在命令窗口显示结果。例如,
» fprintf(' See what this does ')
See what this does»
» fprintf(' See what this does\n ')
See what this does
在上面第一个例子里,fprintf显示字符串,然后立即给出MATLAB提示符。相反,在第二个例子里,\n 插入一个新行字符,在MATLAB提示符出现之前创建一个新行。
无论fprintf还是sprintf以同样方式处理输入参量,但fprintf把输出送到显示屏或文件中,而sprintf把输出返回到一个字符串中。例如,上面的例子用num2str可重写为
» t=sprintf(' A circle of radius %.4g has an area of %.4g. ', rad, area);
» disp(t)
A circle of radius 2.5 has an area of 19.63.
» fprintf(' A circle of radius %.4g has an area of %.4g.\n ' , rad, area)
A circle of radius 2.5 has an area of 19.63.
这里%.4g是用在函数num2str中的数据格式。%.4g就是用指数或定点标记,不管哪一种更短些,只显示至4位数字。除了g格式,还可用e (指数)和f (定点)转换。表6.2表明在各种不同转换下,如何显示pi结果。
表6.2
数 值 格 式 转 换 例 子 |
|
命令 |
结果 |
fprintf(' %.0e\n ',pi) |
3e+00 |
fprintf(' %.1e\n ',pi) |
3.1e+00 |
fprintf(' %.3e\n ',pi) |
3.142e+00 |
fprintf(' %.5e\n ',pi) |
3.14159e+00 |
fprintf(' %.10e\n ',pi) |
3.1415926536e+00 |
fprintf(' %.0f\n ',pi) |
3 |
fprintf(' %.1f\n ',pi) |
3.1 |
fprintf(' %.3f\n ',pi) |
3.142 |
fprintf(' %.5f\n ',pi) |
3.14159 |
fprintf(' %.10f\n ',pi) |
3.1415926536 |
fprintf(' %.0g\n ',pi) |
3 |
fprintf(' %.1g\n ',pi) |
3 |
fprintf(' %.3g\n ',pi) |
3.14 |
fprintf(' %.5g\n ',pi) |
3.1416 |
fprintf(' %.10g\n ',pi) |
3.141592654 |
fprintf(' %.8.0g\n ',pi) |
3 |
fprintf(' %.8.1g\n ',pi) |
3 |
fprintf(' %.8.3g\n ',pi) |
3.14 |
fprintf(' %.8.5g\n ',pi) |
3.1416 |
fprintf(' %.8.10g\n ',pi) |
3.141592654 |
注意,对e 和f 格式,小数点右边的十进制数就是小数点右边要显示的多少位数字。相反,在g 的格式里,小数点右边的十进制数指定了显示数字的总位数。另外,注意最后的五行,其结果指定为8个字符长度,且是右对齐。在最后一行,8被忽略,因为指定超过了8位。
概括起来,当需要比缺省函数disp,num2str和int2str所提供的更多的控制时,fprintf和sprintf是有用的。
函数str2mat把一列的几个字符串转换成一个字符串矩阵。例如,
» a=' one ' ; b= ' two ' ; c= ' three ' ;
» disp(str2mat(a, b, c, ' four '))
one
two
three
four
从上面看不明显,上面的每行有同样数目的元素。较短行用空格补齐,使结果形成一个有效的矩阵
在逆方向转换中,有时是很方便的。
» s= ' [1 2; pi 4] ' % a string of a MATLAB matrix
s =
[1 2; pi 4]
» str2num(s)
ans =
1.0000 2.0000
3.1416 4.0000
» s=' 123e+5 ' % a string containing a simple number
s =
123e+5
» str2num(s)
ans =
12300000
函数str2num不能接受用户定义的变量,也不能执行转换过程的算术运算。
pcolor(X,Y,C)函数的用法: X,Y是用来定位的,C是用来填充颜色的。
当X,Y是向量时,X与C的列对应,Y与C的行对应,因此向量X和Y的维数必须要求与C的列与行统一。所以使用时注意检查X,Y,C的大小和维数。
其后面最好用上函数:shading interp;
sprintf和fprintf相关推荐
- C语言中,printf、sprintf、fprintf之间的区别及用法举例
目录 1. printf 2. sprintf 3. fprintf 在C语言中,sprintf.printf.fprintf都是用来输出字符串的函数,它们之间的主要区别在于输出的位置不同. 它们之间 ...
- Go基础:格式化输出--Printf、Sprintf、Fprintf
Print: 输出到控制台(不接受任何格式化,它等价于对每一个操作数都应用 %v) fmt.Print(str) Println: 输出到控制台并换行 fmt.Println(tmp) Printf ...
- sprintf()、fprintf()的使用方法
1.int sprintf(char *str,char *format,[forgument,..]); 属性:函数: 用法:将格式化的字符写入字符串: 头文件:#include <stdi ...
- golang fmt.Sprintf fmt.Fprintf fmt.Printf
package main import "fmt" import "os" type point struct {x, y int } func main() ...
- scanf printf sprintf fprintf
都是C语言中的函数,但C++保留了这些函数,在头文件iostream中声明了. 1 scanf(格式控制,输出列表) printf (格式控制,输出列表) 举例: #include <iostr ...
- Matlab中disp、fprintf和sprintf
Matlab中disp.fprintf和sprintf有什么区别?_benniaofei18的博客-CSDN博客 matlab中disp.sprintf以及fprintf区别 - Js2Hou - 博 ...
- stderr和stdout(printf、fprintf、sprintf)(转)
先区分一下:printf,sprintf,fprintf. 1,printf就是标准输出,在屏幕上打印出一段字符串来. 2,sprintf就是把格式化的数据写入到某个字符串中.返回值字符串的长度. 3 ...
- 【sprintf】sprintf功能介绍
目录 [二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇 格式化输出函数 printf函数族功能介绍 printf参数 type(类型) flags(标志) number(宽度) precisi ...
- Matlab学习笔记5——fprintf
Matlab学习笔记5--fprintf 将数据写入文本文件 语法 fprintf(fileID,formatSpec,A1,-,An) fprintf(formatSpec,A1,-,An) nby ...
- Matlab中sprintf函数使用
目录 说明 示例 浮点格式 字面文本和数组输入 将格式化文本指定为字符串数组 带有浮点输入的整数格式 指定输出值的字段宽度 使用位置标识符 (n$) 对输入重新排序 根据元胞数组中的值创建字符向量 s ...
最新文章
- 使用CSS隐藏HTML元素的4种常用方法
- arima 预测模型_预测未来:学习使用Arima模型进行预测
- hbase 伪分布安装 java_HBase基础和伪分布式安装配置
- R画地图,并标注所需点
- 第六次程序设计作业 计算器图型界面的设计
- 常用电源芯片特性大集合
- Spring mvc 返回jsp
- 一步安装openssh的脚本
- groupadd 添加用户组
- 计算机网络管理员绩效考核,绩效考核管理系统是如何发挥作用的?
- 利用浏览器另存为将网页内容保存为word
- 微信小程序获取云数据库数据并对其进行排序
- Monaco Editor教程(十七):代码信息指示器CodeLens配置详解
- 四毛子算法与+-1RMQ
- 转载好用的小工具 【who-lock-me】
- 华为手机显示服务器异常怎么办,手机一直提示云服务器异常怎么办
- 手机如何把图片转Word文档?使用这种方法非常方便
- Unity Tilemap Collider 总结
- mysql 免安装版 启动_Windows下配置启动免安装版本mysql
- 从零开始带你称为MySQL实战优化高手(儒猿技术窝)
热门文章
- Mac访问NTFS文件系统的移动硬盘
- Refresh Token介绍
- 各位前辈请问你们的本科毕业论文的外文文献都是从哪里找的,我搜到的都是中国的翻译成英语的?...
- 计算机windows错误恢复,为什么windows错误恢复?
- 大数据scala面试题汇总
- cad2010背景怎么调成黑色_3D错觉立体画到底是怎么画出来的?
- linux翻页查看,【转载】linux-查看日志
- 人脸识别长篇研究 | (一)发展与市场(二)技术与流程(三)行业应用
- 使用burp suite验证是否存在csrf漏洞
- java反序列化漏洞POP查找_Laravel8反序列化POP链分析挖掘