组成
将数据格式化为多个字符串
描述
格式化输入数组中的数据值,str
=组成(formatSpec
,一个
)一个
,使用指定的格式化操作符formatSpec
并返回结果文本str
.的组成
函数从一个
按列排序。如果formatSpec
是字符串数组,那么输出数组也是str
.否则,str
是字符向量的单元格数组。
组成
还将转义字符序列转换为formatSpec
.转义字符序列表示非打印字符或指定换行符或制表符等操作。
的组成
函数可以返回多个格式化文本片段作为字符串数组或字符向量的单元格数组,而不像sprintf
.的sprintf
函数只返回一个字符串标量或字符向量。
如果
一个
那么有多行组成
返回str
作为具有相同行数的字符串数组或单元格数组。组成
重复formatSpec
在每一行str
的对应行中的格式化值一个
.如果中的列数
一个
中的操作符数formatSpec
,然后组成
重复formatSpec
作为的附加列str
.的额外列一个
中的新列贡献格式化值str
.如果中的列数
一个
小于运算符的个数formatSpec
,然后组成
不使用这些运算符格式化值。相反,组成
放入未更改的格式化操作符str
.然而,组成
翻译所有转义字符序列,除了\ \
而且% %
.
格式化来自多个输入数组的数据值,并连接所有格式化的值。当str
=组成(formatSpec
A1,…)组成
使用格式化操作符formatSpec
若要从输入数组转换数据,则这些格式化操作符对以下输入数组不可用。
例如,如果formatSpec
是"%f %f %d %s"
而且A1
有两列,然后是运算符“% % f”
应用于?中的值A1
只有。它们不能被应用A2
或者任何其他输入数组。组成
应用剩下的运算符,“% d % s”
,A2,…,一个
.
如果最后一个输入数组中的列数,一个
,则超过剩余的操作符数组成
将附加列添加到str
,如前面的语法所述。如果中的列数一个
小于剩余的操作符数,那么组成
将最后一个未更改的操作符放入str
.
例子
将数字格式化为字符串
格式π
到小数点后8位,然后以字符串形式返回。
A =
A = 3.1416
可以使用双引号创建字符串。指定formatSpec
作为字符串。
formatSpec =“% .8f”
formatSpec = "%.8f"
str = compose(formatSpec,A)
STR = "3.14159265"
创建包含值的数值数组π
而且e
.使用% e
而且% f
不同精度的运算符。
A = [pi exp(1)]
一个=1×23.1416 - 2.7183
formatSpec =圆周率的值是%.2e;e的值是%.5f。”;str = compose(formatSpec,A)
str = "圆周率值为3.14e+00;e的值是2.71828。”
格式化数组中的值列
格式化从数值数组中获取的值。由于数字数组有多行,组成
返回具有相同行数的字符串数组。
X = [1 2 3 4 5]';Y = x .^2;
可以使用双引号创建字符串。指定formatSpec
作为字符串,并将格式化后的值作为字符串数组返回。
formatSpec =“% d。^2 = %d";str = compose(formatSpec,X,Y)
str =5 x1字符串“1。^2 = 1" "2。^2 = 4" "3。^2 = 9" "4。^2 = 16" "^2 = 25"
用多余或缺少操作符格式化值
当数据数组中的列数不等于操作符数时,格式化值。如果一个
有更多的专栏吗组成
重复formatSpec
作为输出字符串数组的附加列。
可以使用双引号创建字符串。指定formatSpec
作为字符串。
formatSpec =时间是%d:%d;A = [8 15 9 30;10 20 11 50];str = compose(formatSpec,A)
str =2 x2的字符串“时间是8:15”“时间是9:30”“时间是10:20”“时间是11:50”
格式化值时一个
列数较少。
formatSpec =“签入时间%d:%d;退房时间%d:%d";A = [12 27;11日16);str = compose(formatSpec,A)
str =2 x1字符串“登记时间12:27;退房时间%d:%d" "退房时间11:16;退房时间%d:%d"
自一个
只有两列,组成
中只使用前两个格式化操作符formatSpec
格式化值。组成
保持其他格式化操作符不变。
转义字符串数组中的字符
创建包含转义字符序列的字符串数组,以指定水平制表符。使用组成
函数来翻译\ t
转义字符。可以使用双引号创建字符串。
STR = [“姓名、出生日期、地点”;...”琼斯\ t10/20/2015 \ tUK”;...“辛普森\ t09/12/2015 \图萨”];newStr = compose(str)
newStr =3 x1字符串“姓名->出生日期->地点”“琼斯->10/20/2015->英国”“辛普森->09/12/2015->美国”
防止翻译\ n
使用另一个\
的性格。
str =“不要转义第二个n个转义字符序列。”;newStr = compose(str)
newStr = "不要转义第二个n个转义字符序列。"
输入参数
formatSpec
- - - - - -输出字段的格式
格式化操作
输出字段的格式,使用格式化操作符指定。formatSpec
也可以包括普通文本和特殊字符。
如果formatSpec
包括表示转义字符的文本,例如\ n
,然后组成
翻译转义字符。
formatSpec
可以是包含在单引号字符向量中的格式说明符数组,也可以是字符串标量。
格式化操作符
格式化操作符以百分号开头,% gydF4y2Ba
,并以转换字符结束。转换字符是必需的。可选地,您可以指定之间的标志、字段宽度、精度和子类型操作符% gydF4y2Ba
以及转换字符。
转换字符
此表显示将数字和字符数据格式化为文本的转换字符。
值类型 | 转换 | 细节 |
---|---|---|
整数,签署了 |
|
以10为底的 |
整数,无符号 |
|
以10为底的 |
|
8进制(八进制) |
|
|
以16为基数(十六进制),小写字母 |
|
|
一样 |
|
浮点数 |
|
定点记数法(使用精确运算符指定小数点后的位数。) |
|
指数符号,例如 |
|
|
一样 |
|
|
更紧凑的 |
|
|
更紧凑的 |
|
字符或字符串 |
|
单个字符 |
|
字符向量或字符串数组。的类型与输出文本的类型相同 |
可选的运营商
可选标志、字段宽度、精度和子类型操作符进一步定义了输出文本的格式。
旗帜
“- - -”
对齐。
例子:% -5.2度
例子:% -10年代
“+”
对于任何数值,总是打印一个符号字符(+或-)。
例子:% + 5.2 f
文本对齐。
例子:% + 10 s
' '
在值之前插入一个空格。
例子:% 5.2度
' 0 '
填充到字段宽度,值前为零。
例子:% 05.2度
“#”
修改选定的数值转换:
为
%啊
,% x
,或% X
、打印0
,0 x
,或0 x
前缀。为
% f
,% e
,或% E
,即使精度为0,也可打印小数点。为
% g
或% G
,不移除尾随零或小数点。
例子:
% # 5.0度
字段宽度
打印的最小字符数。
例子:
' % 5 d '
打印intmax
作为2147483647
因为返回的值intmax
超过要打印的最小字符数。如果要打印的字符数小于字段宽度,则
组成
除非flags另有指定,否则函数将填充字段宽度,在值前加空格。然而,
num2str
函数不将字段宽度填充为空格。精度
要打印的数字数。
为
% f
,% e
,或% E
小数点右边的位数
例子:“% .4f”
打印π
作为“3.1416”
为
% g
或% G
有效位数
例子:“% .4g”
打印π
作为“3.142”
例子:
' % 6.4 f '
打印π
作为“3.1416”
.请注意
如果为浮点值指定的精度操作符超过输入数值数据类型的精度,则结果可能与输入值的精度不匹配。结果取决于您的计算机硬件和操作系统。
子类型
可以使用子类型操作符将浮点值打印为其八进制、十进制或十六进制值。子类型操作符紧接在转换字符的前面。下表显示了可以使用子类型的转换。
输入值类型
子类型和转换字符
输出值类型
浮点数
% bx
或% bX
%博
% bu
双精度十六进制、八进制或十进制值
例子:% bx
打印π
作为400921 fb54442d18
% tx
或% tX
%,
%你
单精度十六进制、八进制或十进制值
例子:% tx
打印π
作为40490身上
格式化操作符之前或之后的文本
formatSpec
还可以在百分号之前包含额外的文本,% gydF4y2Ba
,或转换字符后。文本可以是:
普通文字打印。
不能作为普通文本输入的特殊字符。此表显示了如何在中表示特殊字符
formatSpec
.特殊字符
表示
单引号
”
百分比的性格
% %
反斜杠
\ \
报警
、一个
退格
\ b
换页
\ f
新行
\ n
回车
r \
水平选项卡
\ t
垂直制表符
v \
Unicode字符®数值可以用十六进制数表示,
N
\ xN
例子:
组成(“\ x5A”)
返回“Z”
Unicode数值可以用八进制数表示的字符。
N
\ N
例子:
组成(\ 132 ')
返回“Z”
格式化操作符转换的显著行为
数值转换只输出复数的实分量。
如果指定的转换不适合数据,例如数值的文本转换,请使用MATLAB®重写指定的转换,并使用
% e
.例子:
' % s '
转换π
来3.141593 e + 00
.如果应用文本转换(或
% c
或% s
)转换为整数值,MATLAB将对应于有效字符代码的值转换为字符。例子:
' % s '
转换[65 66 67]
来美国广播公司
.
一个
- - - - - -数字、字符或字符串数组
标量|向量|矩阵|多维数组
数值、字符或字符串数组,指定为标量、向量、矩阵或多维数组。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
|字符
|字符串
三种
- - - - - -输入文本
字符串数组|特征向量|字符向量的单元格数组
输入文本,指定为字符串数组、字符向量或字符向量的单元格数组。组成
翻译任何转义字符序列三种
.例如,组成
翻译\ n
转换成换行符。
数据类型:字符串
|字符
|细胞
输出参数
str
-格式化文本
字符串数组|单元格字符向量数组
格式化的文本,作为字符串数组或字符向量的单元格数组返回。
数据类型:字符串
|细胞
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。万博1manbetx有关更多信息,请参见在线程环境中运行MATLAB函数.
分布式阵列
使用并行计算工具箱™跨集群的组合内存对大型数组进行分区。
该函数完全支持分布式数组。万博1manbetx有关更多信息,请参见运行MATLAB函数与分布式阵列(并行计算工具箱).
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。