Matlab自学笔记二十七:详解格式化文本sprintf各参数设置方法

1.一个程序引例

上篇文章已经介绍了格式化文本的初步应用,程序示例如下:

sprintf('|%f\n|%.2f\n|%8.2f',pi*ones(1,3))

2.格式化操作符各字段的含义解析

格式化操作符可以有六个字段,只有主字符%和转换格式是必需的,其他都是可选的,如下图所示:

2.1转换格式

对于上述格式化操作符的六个字段,从右往左依次说明,首先说 转换格式,不同的标识符代表了不通的数据类型,如下表所示:

字段

描述

c

单个字符

d

十进制符号(有符号)

e

指数表示法(使用小写e,如3.1415e+00)

E

指数表示法(使用大写E,如3.1415E+00)

f

定点表示法(常用)

g

%e或更紧凑的%f(不重要的零不显示)

G

同%g,但使用大写E

o

八进制符号(无符号)

s

字符向量或字符串数​​组

u

十进制符号(无符号)

x

十六进制符号(无符号,使用小写字母a- f)

X

十六进制符号(无符号,使用大写字母A- F)

2.2子类型

一般的,使用整型数转换成八进制,十进制或十六进制;

同理,对于类型%o,%x,%X,和%u,如果没有子类型字段,转换字符把输入数据视为整数;

对于上述类型,如果需要把输入数据视为浮点值,并将其转换为八进制,十进制或十六进制表示形式,使用b或t作为子类型说明符;

b表示把输入数据看作双精度浮点值而不是无符号整数;

t表示把输入数据看作单精度浮点值而不是无符号整数;

2.3精度和字段宽度

精度和字段宽度是一个非负整数,用句点隔开;

对于%g,精度表示显示有效数字的数目;

对于%f,%e和%E,精度表示小数点右边显示数字的数目;

字段宽度用于指定输出中的位数或字符数;

当设定字段宽度大于字符数时,默认使用空格补齐;

如果未指定精度,则默认为六位;

如果指定精度p小于输入值小数部分的位数,则在小数点后面按四舍五入方式只显示p位数字;

如果指定精度p大于输入值小数部分的位数f,则在小数点后面显示p位数字,小数部分向右延伸,p-f位用0填充;

如果未指定字段宽度,则默认为p+1+n,其中n是输入值整数部分的位数;

如果指定字段宽度w大于p+1+n,则输出值的左侧将被填充w-(p+1+n)个其他字符,除非指定为0,否则默认填充空格字符;

如果字段宽度小于等于输入文本中的字符数,则不起作用;

2.4标志

有些表示填充符号,有些表示特殊设置,如下表所示:

字符

描述

减号(-)

在字段宽度内令转换后的参数左对齐

%-5.2d

加号(+)

对于数字值,显示为前导符号

对于文本值,在字段宽度内令转换后的参数右对齐

%+5.2d
%+5s

空格( )

在值之前填充空格。

% 5.2f

零(0)

用零填充而不是空格

%05.2f

英镑符号(#)

修改选定的数字转换:

对于%o,%x或%X,显示为0,0x或0X前缀

对于%f,%e或者%E,即使精度为0,也可以显示小数点

对于%g或%G,不要删除尾随零或小数点

%#5.0f

2.5识别符

默认情况下,sprintf将输入参数的值按顺序显示到输出文本中;

要以非默认顺序处理,使用数字标识符指定顺序;

用紧跟在%后面,并且尾随$的一个整数指定非连续参数;

2.6补充特殊字符

特殊字符可以是输出文本的一部分,但是因为它们不能作为普通文本输入,需要通过特定的转义字符表示它们,如表

特殊字符

表示方法

单引号

''

百分号

%%

反斜杠

\\

报警

\a

退格

\b

换页

\f

换行

\n

回车

\r

水平tab

\t

垂直tab

\v

字符的Unicode数字值可以由十六进制数来表示

\xN

例如: sprintf('\x3D')返回'='

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

\N

例如:sprintf('\102')返回'B'

2.7补充

字段宽度和精度由外部指定。可以使用顺序参数列表中的值指定字段宽度和精度,使用星号(*)作为字段宽度或精度的占位符。

如果输入参数比格式运算符多,则格式运算符将被重用。注意,只有使用顺序排序格式操作符被重用。使用编号标识符时不能重用。

编号识别符和普通顺序不混用,会在两者转换时输出停止。

更多精彩相关内容

1.9/Matlab矩阵索引/下标索引/线性索引/逻辑索引/黄金级必备知识点

35.2 Matlab循环语句

1.49/Matlab实时脚本/写论文必备技能

1.32/Matlab格式化文本字符sprintf

Matlab基础入门1.4 脚本编程

End

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/410561.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DWT硬件延时

DWT硬件延时 文章目录 DWT硬件延时软件&硬件延时方案软件延时硬件延时方案 DWT硬件延时方案DWT硬件延时方案DEMCR寄存器DWT硬件延时方案实现延时初始化:US延时:MS延时: 软件&硬件延时方案 软件延时 static void Delay(uint32_t cou…

Sora抢饭碗!好莱坞大亨停止8亿美元投资

好莱坞消息,著名演员、影视投资人Tyler Perry在看到OpenAI最新发布的文生视频模型Sora后,停止了8亿(约57亿元)美元的投资。 该投资项目位于亚特兰大,本来要扩展十几个摄影棚用于影视剧的拍摄(类似横店影视…

企业微信主体怎么转让给别人?

企业微信变更主体有什么作用?当我们的企业因为各种原因需要注销或已经注销,或者运营变更等情况,企业微信无法继续使用原主体继续使用时,可以申请企业主体变更,变更为新的主体。企业微信变更主体的条件有哪些&#xff1…

C++笔记(面对对象部分复习向)

B站:黑马程序员C教程 栈区,全局区,堆区和代码区 析构、构造和static 对象成员与类本身构造顺序,先成员后自己;析构则相反 static修饰成员变量,所有对象共享一份内存,编译阶段分配内存,类内声明…

Windows部署WebDAV服务并映射到本地盘符实现公网访问本地存储文件

文章目录 前言1. 安装IIS必要WebDav组件2. 客户端测试3. 使用cpolar内网穿透,将WebDav服务暴露在公网3.1 安装cpolar内网穿透3.2 配置WebDav公网访问地址 4. 映射本地盘符访问 前言 在Windows上如何搭建WebDav,并且结合cpolar的内网穿透工具实现在公网访…

使用CE查找共享代码的多种方法

一般在游戏中,我们会有这样的定义Player和怪物NPC: // 基类 Character class Character { protected:std::string name;int64_t id;int32_t hp;int32_t mp;int32_t level;public:Character(const int64_t name) : id(id) {}virtual void attack() {…

做了个很牛的网站,可以搜索网站的网站到底有多好用?

今天给大家推荐的网站叫做:毒蘑菇 - 搜索 毒蘑菇搜索,顾名思义呢,搜索的功能比较好用,大家上网的时候总是需要记住网站的地址,即使你知道网站的名称,也得跳转到百度然后在搜索,有时候百度上那么…

Windows Server 2012 IIS中发布ASP.NET CORE项目

服务器安装IIS: 微软官网下载SDK: 下载Runtime官网:https://dotnet.microsoft.com/download/dotnet-core 安装成功重启IIS: VS发布项目:

流浪动物救助平台:Java开发的实践与思考

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

DevOps 周期的 6 个 C

中型到大型软件开发项目涉及许多人员、多个团队、资源、工具和开发阶段。它们都需要以某种方式进行管理和简化,不仅可以获得所需的产品,而且还要确保将来在不断变化的环境下易于管理和维护。组织通常遵循许多项目管理模型和技术。DevOps 是其中之一&…

精益生产,创新驱动:机器人技术引领企业的未来之路

随着自动化技术的普及和物联网、人工智能技术的迅速发展,全球制造业正在经历着一场革命性的变革。传统以人力劳动为基础的制造业正逐渐向以机器为主导的智能生产模式转型。企业们正积极探索更高效的制造方式,通过新兴技术提升生产力,同时降低…

该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定解决操作步骤

1. 关注“公众平台安全助手” 2. 进入“公众平台安全助手”,点击右上角的用户图标,进入公众号信息界面。 3. 进入“公众号信息”界面后,点击右上角的…图标,打开更多选项。 4. 打开“更多选项”后,选择设置选项&#x…

Python高性能web框架--Fastapi快速入门

文章目录 fastapi框架一、预备知识点1.1、http协议一、简介二、 http协议特性三、http请求协议与响应协议 1.2、api接口 二、quick start简单案例 fastapi框架 Fastapi,一个用于构建 API 的现代、快速(高性能)的web框架。 fastapi的两个核心…

随机分布模型

目录 前言 一、离散型随机变量 1.1 0-1分布 1.2 二项分布 1.3 帕斯卡分布 1.4 几何分布 1.5 超几何分布 1.6 泊松分布 二、连续型随机变量 2.1 均匀分布 2.2 指数分布 2.3 高斯分布/正态分布 2.4 分布(抽样分布) 2.5 t分布(抽样…

pytest钩子函数-pytest_runtest_logreport提取测试用例相关信息

问题:想在每个日志中记录测试用例开始结束时间,获取到测试用例的名称。 解决办法:使用钩子pytest_runtest_logreport 在pytest中,想要在conftest.py文件中获取正在运行的测试用例的名称,可以使用pytest_runtest_logre…

玩转ChatGPT:参考文献速查

一、写在前面 各位大佬,我又回来了,最近2月太忙啦(过年、奶娃、本子、材料、结题),断更了。现水一篇证明我还活着!!! 最近在写国自然本子,遇到一个估计大家都会遇到的问…

node14下运行项目报错:regeneratorRuntime is not defined

regeneratorRuntime is not defined,这是由于配置babel出错问题,由于使用了es7语法如async/await而当前babel版本过低 解决: npm install -D babel-plugin-transform-runtime babel-runtime 安装完成后在.babelrc文件下配置: &qu…

Centos7.9环境源码编译安装ffmpeg6.x

1.官网ffmpeg下载源码 https://ffmpeg.org/download.html#build-windows 2.未安装x264库则先安装配置 可以先查询x264库: whereis libx264 安装编译工具和依赖库: sudo yum install gcc make cmake mercurial git yasm pkgconfig autoconf automake libtool sudo…

Easy-Jmeter: 性能测试平台

目录 写在开始1 系统架构2 表结构设计3 测试平台生命周期4 分布式压测5 压力机管理6 用例管理6.1 新增、编辑用例6.2 调试用例6.3 启动测试6.4 动态控量6.5 测试详情6.6 环节日志6.7 实时数据6.8 测试结果 7 测试记录7 用例分析8 系统部署8.1普通部署8.2容器化部署 写在最后 写…

【Node.js】自动生成 API 文档

目录 1、直接使用swagger-ui-express 2、配合swagger-jsdoc 如何在Node.js项目中使用 Swagger 来自动生成 API接口文档,使用生成方式有很多种。本文基于swagger-jsdocswagger-ui-express快速实现 1、直接使用swagger-ui-express // 方便来浏览和测试api npm i sw…