compose
将数据格式化为多个字符串
说明
使用 str
= compose(formatSpec
,A
)formatSpec
指定的格式化操作符对输入数组 A
中的数据值进行格式化,并在 str
中返回结果文本。compose
函数按列顺序对 A
中值进行格式化。如果 formatSpec
是字符串数组,则输出数组 str
也是字符串数组。否则,str
为字符向量元胞数组。
compose
还会转换 formatSpec
中的转义字符序列。转义字符序列表示非打印字符,或者指定插入换行符或制表符等操作。
compose
函数可以字符串数组或字符向量元胞数组形式返回多个格式化文本段,这一点与 sprintf
不同。sprintf
函数只返回一个字符串标量或字符向量。
如果
A
具有多行,则compose
以具有相同行数的字符串数组或元胞数组形式返回str
。compose
会对str
中的每一行重复应用formatSpec
,获得A
中对应行的格式化值。如果
A
中的列数超出formatSpec
中的操作符数量,则compose
会重复应用formatSpec
,作为str
的附加列。A
的附加列为str
中的新列提供格式化的值。如果
A
中的列数少于formatSpec
中的运算符数量,则compose
不使用这些多出的操作符对值进行格式化。相反,compose
会在str
中放置保持不变的格式化操作符。但是,compose
会转换除\\
和%%
之外的所有转义字符序列。
对多个输入数组中数据值进行格式化,并串联所有格式化的值。当 str
= compose(formatSpec
,A1,...,AN)compose
使用 formatSpec
中的一些格式化操作符转换某一输入数组中的数据后,则已用的这些格式化操作符将无法用于其后续输入数组。
例如,如果 formatSpec
为 "%f %f %d %s"
,并且 A1
具有两列,则操作符 "%f %f"
将仅应用于 A1
中的值。它们不能应用于 A2
或任何其他输入数组。compose
会将剩余的操作符 "%d %s"
应用于 A2,...,AN
。
如果最后一个输入数组 AN
中的列数超出剩余的操作符数,则 compose
会向 str
中添加额外的列,如上述语法中所述。如果 AN
中的列数少于剩余操作符数,则 compose
会将最后未用的操作符原样置于 str
中。
示例
输入参数
输出参量
扩展功能
版本历史记录
在 R2016b 中推出