主要内容

撰写

将数据格式化为多个字符串

描述

例子

str=撰写(formatspec.一种格式化输入数组中的数据值,一种,使用由指定的格式运算符formatspec.并返回生成的文本str.这撰写函数格式化一种列顺序。如果formatspec.是一个字符串数组,那么输出数组是如此str.否则,str是字符向量的单元格数组。

撰写还翻译了逃生字符序列formatspec..转义字符序列表示非打印字符或指定操作,如换行符或制表符。

撰写函数可以返回多段格式化文本作为字符串数组或字符向量的单元格数组,而不像Sprintf..这Sprintf.函数只返回字符串标量或字符向量。

  • 如果一种有多行,然后撰写回报str作为具有相同行数的字符串数组或单元格数组。撰写重复formatspec.在每一行str,来自相应行的格式化值一种

  • 如果列的数量一种超过运营商的数量formatspec., 然后撰写重复formatspec.作为附加列str.的额外列一种将格式化值贡献到新列中str

  • 如果列的数量一种不到运营商的数量formatspec., 然后撰写不使用这些运算符格式化值。反而,撰写将不变的格式运算符放入str.然而,撰写翻译所有逃生字符序列以外\\%%

str=撰写(formatspec.,a1,...,a)格式化来自多个输入阵列的数据值并连接所有格式化值。什么时候撰写使用格式运算符formatspec.若要从输入数组转换数据,这些格式化操作符将无法用于以下输入数组。

例如,如果formatspec.“%f%d%s”A1有两列,那么算符呢“%f%f”应用于价值A1只要。他们不能应用于A2或任何其他输入阵列。撰写适用剩下的运营商,“%d%s”, 至A2,…,一个

如果最后一个输入数组中的列数,一个,超过剩余运算符的数量,然后撰写添加一个附加列str,如前面语法所述。如果列的数量一个那么剩余的操作符的数量是否小于撰写把最后一个不变的运营商放在上面str

例子

str=撰写(三种翻译逃生字符序列三种

  • 如果三种那时不包含格式化运算符撰写翻译所有转义字符序列。它留下了所有其他角色不变。

  • 如果三种然后包含格式化运算符,然后撰写翻译所有逃生字符序列以外\\%%.它保留所有其他字符,包括格式化操作符,不变。

例子

全部收缩

格式π到八个小数点并将其作为字符串返回。

一个=π
a = 3.1416.

从R2017A开始,您可以使用双引号创建字符串。指定formatspec.作为一个字符串。

formatspec =.“% .8f”
formatspec =“%.8f”
str = compose(formatspec,a)
str =“3.14159265”

创建一个数字数组,其中包含值πE..使用%E.%F具有不同精度的操作符。

a = [pi exp(1)]
A =1×23.1416 - 2.7183
formatspec =.“pi的值为%.2e; e的值是%.5f。”;str = compose(formatspec,a)
str =“pi的值为3.14e + 00; e的值是2.71828。”

从数字阵列取得格式值。由于数字阵列有多行,撰写返回具有相同行数的字符串数组。

X = [1 2 3 4 5]';Y = x. ^ 2;

从R2017A开始,您可以使用双引号创建字符串。指定formatspec.作为字符串,并以字符串数组的形式返回格式化值。

formatspec =.“%d。^ 2 =%d”;str =组成(formatSpec, X, Y)
str =5 x1字符串“1. ^ 2 = 1”“2. ^ 2 = 4”“3. ^ 2 = 9”“4. ^ 2 = 16”“5. ^ 2 = 25”

当数据数组中的列数不等于操作符数时格式化值。如果一种有更多的列,然后撰写重复formatspec.作为输出字符串数组的附加列。

从R2017A开始,您可以使用双引号创建字符串。指定formatspec.作为一个字符串。

formatspec =.“时间是%d:%d”;a = [8 15 9 30;10 20 11 50];str = compose(formatspec,a)
str =2x2字符串“时间是8:15”“时间是9:30”“时间是10:20”“时间是11:50”

格式的值时一种列较少。

formatspec =.“入住时间% d: % d;退房时间% d: % d”;A = [12 27;11日16);str = compose(formatspec,a)
str =2x1字符串“检查时间12:27;退房时间%d:%d”“检查时间11:16;退房时间%d:%d”

自从一种只有两列,撰写仅使用前两个格式运算符formatspec.格式化值。撰写让其他格式运算符保持不变。

创建一个字符串数组,其中包括转义字符序列以指定水平标签。使用撰写翻译的功能\转义字符。从R2017A开始,您可以使用双引号创建字符串。

str = [“名字\出生tDate \ tLocation”;...“Jones \ T10 / 20/2015 \ Tuk”;...“辛普森\ t09 / 12/2015 \ tusa”];newstr = compose(str)
newstr =3x1字符串“姓名 - >出生日期 - >地点”“琼斯 - > 10/20/2015->英国”“辛普森 - > 09/12 / 2015->美国”

防止翻译\ n用另一个\特点。

str =“不要逃脱第二个\ n \\ n转义字符序列。”;newstr = compose(str)
newStr = "不要转义第二个\n转义字符序列"

输入参数

全部收缩

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

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

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

格式化操作符

格式化操作符以百分号开头,%GydF4y2Ba,并以转换字符结束。需要转换字符。(可选)您可以指定标识符,标志,字段宽度,精度和子类型运算符%GydF4y2Ba以及转换字符。(操作符之间的空格是无效的,此处仅为可读性而显示)。

转换字符

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

值类型 转换 细节

整数,签署了

%D.%一世

以10为底的

整数,无符号

%U.

以10为底的

%O.

基地8(八进制)

%X

基地16(十六进制),小写字母一种-F

%X

和...一样%X,大写字母一种-F

浮点数

%F

定点表示法(使用精密操作员指定小数点后的数字数。)

%E.

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

%E.

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

%G

更紧凑%E.%F,末尾没有零(使用精确运算符指定有效数字的数目)。

%G

更紧凑%E.%F,末尾没有零(使用精确运算符指定有效数字的数目)。

字符或字符串

%C

单个字符

%S.

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

可选的运营商

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

  • 标识符

    注意:不像Sprintf.功能,撰写不支持标识符。万博1manbetx

  • 旗帜

    ' - '

    左右。
    例子:% -5.2度
    例子:% -10年代

    '+'

    始终为任何数值打印符号字符(+或 - )。
    例子:% + 5.2 f
    文本对齐。
    例子:% + 10 s

    ' '

    在值前插入一个空格。
    例子:%5.2f.

    '0'

    在值之前用零填充到字段宽度。
    例子:%05.2f.

    “#”

    修改选定的数字转换:

    • 为了%O.%X,或%X, 打印0.0 x,或0 x前缀。

    • 为了%F%E.,或%E.,打印小数点,即使精度为0。

    • 为了%G%G,不要删除尾随零或小数点。

    例子:%#5.0f.

  • 字段宽度

    要打印的最小字符数。

    例子:'%5d'打印intmax作为2147483647因为返回的值intmax超过要打印的最小字符数。

    如果打印的字符数小于字段宽度,则撰写函数将空格填充到字段宽度,除非由标志另行指定。

    然而,num2str函数不会用空格填充字段宽度。

  • 精确

    打印的数字数。

    为了%F%E.,或%E.

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

    为了%G%G

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

    例子:' % 6.4 f '打印π作为'3.1416'

    笔记

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

  • 亚型

    您可以使用子类型运算符将浮点值作为其八进制,十进制或十六进制值进行打印。子类型操作员在转换字符之前。此表显示了可以使用子类型的转换。

    输入值类型

    子类型和转换字符

    输出值类型

    浮点数

    %BX.%BX.
    %博
    %bu ..

    双重精度十六进制,八进制或十进制值
    例子:%BX.打印π作为400921FB54442D18

    %tx.%tx.
    %至
    %TU.

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

格式化运算符之前或之后的文本

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

  • 普通文字打印。

  • 不能作为普通文本输入的特殊字符。中表示特殊字符formatspec.

    特殊字符

    表示

    单引号

    ''

    百分比的性格

    %%

    反斜杠

    \\

    报警

    \一种

    背板

    \ B.

    表格饲料

    \F

    新队

    \ n

    回车

    \ R.

    水平选项卡

    \

    垂直标签

    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]ABC

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

数据类型:|双倍的|int8|int16|INT32.|INT64.|uint8|uint16|uint32|uint64|逻辑|char|字符串

输入文本,指定为字符串数组,字符向量或字符向量的单元数组。撰写翻译任何逃生字符序列三种.例如,撰写翻译\ n进入纽诺字符。

数据类型:字符串|char|细胞

输出参数

全部收缩

格式化文本,返回为字符串数组或字符向量的单元格数组。

数据类型:字符串|细胞

扩展功能

介绍在R2016B.