Matlab中sprintf语句用法

目录

语法

说明

示例

1. 浮点格式

2. 字面文本和数组输入

3. 将格式化文本指定为字符串数组

4. 带有浮点输入的整数格式

5. 指定输出值的字段宽度

6. 使用位置标识符 (n$) 对输入重新排序

7. 根据元胞数组中的值创建字符向量


sprintf:将数据格式化为字符串或字符向量。

语法

     str = sprintf(formatSpec,A1,...,An)

     [str,errmsg] = sprintf(formatSpec,A1,...,An)

     str = sprintf(literalText)

说明

str = sprintf(formatSpec,A1,...,An) 使用 formatSpec 指定的格式化操作符格式化数组 A1,...,An 中的数据,并在 str 中返回结果文本。sprintf 函数按列顺序格式化 A1,...,An 中的值。如果 formatSpec 是字符串,则输出 str 也是字符串。否则,str 是字符向量。

要以字符串数组或字符向量元胞数组形式返回多个格式化文本段,请使用 compose 函数。

如果操作失败,[str,errmsg] = sprintf(formatSpec,A1,...,An) 将以字符向量形式返回一条错误消息。否则,errmsg 为空。

str = sprintf(literalText) 转换 literalText 中的转义字符序列,例如 \n 和 \t。它会原样返回所有其他字符。如果 literalText 包含格式化操作符(例如 %f),则 str 将丢弃该字符以及之后的所有字符。

示例

1. 浮点格式

使用 %e、%f 和 %g 设定符设置浮点数的格式。

A = 1/eps;

str_e = sprintf('%0.5e',A)

str_e = 

'4.50360e+15'

str_f = sprintf('%0.5f',A)

str_f =

'4503599627370496.00000'

str_g = sprintf('%0.5g',A)

str_g =

'4.5036e+15'

2. 字面文本和数组输入

将字面文本与数组值组合在一起来创建字符向量。

formatSpec = 'The array is %dx%d.';

A1 = 2;

A2 = 3;

str = sprintf(formatSpec,A1,A2)

str =

'The array is 2x3.'

3. 将格式化文本指定为字符串数组

要以字符串形式返回格式化文本,请在调用 sprintf 函数时将 formatSpec 指定为字符串而不是字符向量。

formatSpec = "The current time is: %d:%d %s";

A1 = 11;

A2 = 20;

A3 = 'a.m.';

str = sprintf(formatSpec,A1,A2,A3)

str =

"The current time is: 11:20 a.m."

转换输入字符串。包含文本的输入数组可以是字符向量或字符串。

A1 = 2;

A2 = 35;

A3 = "p.m.";

str = sprintf(formatSpec,A1,A2,A3)

str =

"The current time is: 2:35 p.m."

4. 带有浮点输入的整数格式

将双精度值显式转换为整数。

str = sprintf('%d',round(pi))

str =

'3'

5. 指定输出值的字段宽度

指定输出值的最小宽度。

str = sprintf('%025d',[123456])

str =

'0000000000000000000123456'

%025d 格式设定符中的 0 标志请求在输出中使用前导零。

6. 使用位置标识符 (n$) 对输入重新排序

使用 n$ 位置标识符将输入值重新排序。

A1 = 'X';

A2 = 'Y';

A3 = 'Z';

formatSpec = ' %3$s %2$s %1$s';

str = sprintf(formatSpec,A1,A2,A3)

str =

' Z Y X'

7. 根据元胞数组中的值创建字符向量

C = { 1,   2,   3 ;

     'AA','BB','CC'};

str = sprintf(' %d %s',C{:})

str =

' 1 AA 2 BB 3 CC'

语法 C{:} 创建一个逗号分隔的数组列表,该列表以列顺序包含 C 中每个元胞的内容。例如,C{1}==1 和 C{2}=='AA'。

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NeverComplacent

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值