- Matlab 教程
- MATLAB - 首页
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 环境设置
- MATLAB - 编辑器
- MATLAB - 在线版
- MATLAB - 工作区
- MATLAB - 语法
- MATLAB - 变量
- MATLAB - 命令
- MATLAB - 数据类型
- MATLAB - 运算符
- MATLAB - 日期和时间
- MATLAB - 数字
- MATLAB - 随机数
- MATLAB - 字符串和字符
- MATLAB - 文本格式化
- MATLAB - 时间表
- MATLAB - M 文件
- MATLAB - 冒号表示法
- MATLAB - 数据导入
- MATLAB - 数据导出
- MATLAB - 数据归一化
- MATLAB - 预定义变量
- MATLAB - 决策
- MATLAB - 决策语句
- MATLAB - if 语句
- MATLAB - if-else 语句
- MATLAB - if-elseif-else 语句
- MATLAB - 嵌套 if 语句
- MATLAB - switch 语句
- MATLAB - 嵌套 switch
- MATLAB - 循环
- MATLAB - 循环
- MATLAB - for 循环
- MATLAB - while 循环
- MATLAB - 嵌套循环
- MATLAB - break 语句
- MATLAB - continue 语句
- MATLAB - end 语句
- MATLAB - 数组
- MATLAB - 数组
- MATLAB - 向量
- MATLAB - 转置运算符
- MATLAB - 数组索引
- MATLAB - 多维数组
- MATLAB - 兼容数组
- MATLAB - 分类数组
- MATLAB - 元胞数组
- MATLAB - 矩阵
- MATLAB - 稀疏矩阵
- MATLAB - 表格
- MATLAB - 结构体
- MATLAB - 数组乘法
- MATLAB - 数组除法
- MATLAB - 数组函数
- MATLAB - 函数
- MATLAB - 函数
- MATLAB - 函数参数
- MATLAB - 匿名函数
- MATLAB - 嵌套函数
- MATLAB - return 语句
- MATLAB - 无返回值函数
- MATLAB - 局部函数
- MATLAB - 全局变量
- MATLAB - 函数句柄
- MATLAB - 滤波器函数
- MATLAB - 阶乘
- MATLAB - 私有函数
- MATLAB - 子函数
- MATLAB - 递归函数
- MATLAB - 函数优先级
- MATLAB - map 函数
- MATLAB - mean 函数
- MATLAB - end 函数
- MATLAB - 错误处理
- MATLAB - 错误处理
- MATLAB - try...catch 语句
- MATLAB - 调试
- MATLAB - 绘图
- MATLAB - 绘图
- MATLAB - 绘制数组
- MATLAB - 绘制向量
- MATLAB - 条形图
- MATLAB - 直方图
- MATLAB - 图形
- MATLAB - 二维线图
- MATLAB - 三维图
- MATLAB - 格式化绘图
- MATLAB - 对数坐标轴图
- MATLAB - 绘制误差条
- MATLAB - 绘制三维等值线图
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 二维数组插值
- MATLAB - 三维数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换函数
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 二维逆余弦变换
- MATLAB - 向坐标轴添加图例
- MATLAB - 面向对象
- MATLAB - 面向对象编程
- MATLAB - 类和对象
- MATLAB - 函数重载
- MATLAB - 运算符重载
- MATLAB - 用户自定义类
- MATLAB - 复制对象
- MATLAB - 代数
- MATLAB - 线性代数
- MATLAB - 高斯消元法
- MATLAB - 高斯-约旦消元法
- MATLAB - 简化行阶梯形
- MATLAB - 特征值和特征向量
- MATLAB - 积分
- MATLAB - 积分
- MATLAB - 二重积分
- MATLAB - 梯形法则
- MATLAB - 辛普森法则
- MATLAB - 其他
- MATLAB - 微积分
- MATLAB - 微分
- MATLAB - 矩阵的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用资源
- MATLAB - 快速指南
- MATLAB - 有用资源
- MATLAB - 讨论
MATLAB - 文本格式化
当您想要以特定格式显示文本时,文本格式化就发挥作用了。
Matlab 使用格式化运算符来管理符号、对齐方式、有效数字等。函数 num2str 和 sprintf 是最常用的方法,它们使用格式化运算符来处理文本格式化。
例如,格式化运算符如下:
%f 用于使用定点表示法将浮点值转换为文本。
%.2f 用于表示小数点后 2 位数字。
%12f 用于在输出中显示 12 个字符,包括填充和空格。
在 Matlab 中,支持格式化运算符的函数包括 compose、num2str、sprintf、fprintf。
格式化运算符字段
格式化运算符共有六个字段。以下是详细信息
格式化运算符的六个字段包括标识符、标志、字段宽度、精度、子类型和转换字符。在这六个字段中,转换字符是唯一必须与前面的 % 字符一起使用的参数。
转换字符
转换字符指示输出表示法。它采用单个字符,位于格式说明符的最后。
说明符 | 描述 |
---|---|
c | 单个字符 (char) |
d | 十进制表示法(带符号) |
e | 指数表示法(使用小写 e,例如 3.1415e+00)。 |
E | 指数表示法(使用大写 E,例如 3.1415E+00)。 |
f | 定点表示法。 |
g | %e 或 %f 中较紧凑的一种。 |
G | 与 %g 相同。 |
o | 八进制表示法(无符号)。 |
s | 字符向量或字符串数组。 |
u | 十进制表示法(无符号)。 |
x | 十六进制表示法小写 (a-f) |
X | 十六进制表示法大写 (A-F) |
这是一个使用转换字符的示例,它将数字格式化为十六进制形式。
>> N = 30*ones(1,3); text_format = sprintf('%X', N) text_format = '1E1E1E' >>
要获得相同数字的十进制和定点格式,您可以如下所示在 sprintf 方法中使用 %d 和 %f。
>> N = 30*ones(1,3); >> text_format = sprintf('%d %f', N) text_format = '30 30.00000030 ' >>
子类型
子类型是一个单个字母,它紧跟在转换字符之前。如果没有子类型,则 %o、%x、%X 和 %u 等转换说明符将输入数据视为整数。
因此,要将输入数据视为浮点数而不是整数,并将其转换为八进制、十进制或十六进制,您可以考虑以下子类型说明符
说明符 | 描述 |
---|---|
b | 对于双精度浮点值输入数据。 |
t | 对于单精度浮点值输入数据。 |
示例
>> N = 15; >> text_format = sprintf('%bu', N) text_format = '04624633867356078080'
精度
此字段紧跟在格式化运算符中的句点之后。使用的数字为 0 或正整数。例如 %6.3f,这里的精度为 3。
示例
>> text_format = sprintf('%.2f', 1500) text_format = '1500.00' >>
字段宽度
是格式化操作字段宽度中的正整数,它指示输出中的位数或字符数。例如 %5.2f,这里的字段宽度为 5。
默认情况下,如果字段宽度大于要显示的字符数,则会在左侧填充空格。
示例 1
>> text_format = sprintf('|%3e|%f|%5f|',[33333 45454 50.12123]) text_format = '|3.333300e+04|45454.000000|50.121230|' >>
示例 2
>> text_format = sprintf('%20s', 'Hello world') text_format = 'Hello world' >>
标志
此字段是可选的,但使用它可以为您的输出提供其他格式。下表描述了您在格式化过程中可以使用字符。
字符 | 描述 | 示例 |
---|---|---|
减号 (-) | 左对齐给定的输入 | %-3.2d |
加号 (+) | 如果是数字,它将在数字输入数据前面显示符号 +/-。对于文本输入,它将右对齐。 | %+3.2d %+3s |
空格 | 在给定的输入前插入空格 | % 3.2f |
零 (0) | 在给定的输入前使用填充 | %03.2f |
井号 (#) | 使用此特定数字输入可以更改:
|
%#3.0f |
示例 1:使用减号 (-)
>> txt_format = sprintf('Example of left-justify: %-12.2f',11.3) txt_format = 'Example of left-justify: 11.30 ' >>
示例 2:使用加号 (+)
>> text_format = sprintf('plus sign: %+5.2f',12.3) text_format = 'plus sign: +12.30' >>
示例 3:使用空格进行填充
>> mytxt = sprintf('Padding with zeroes: %010.2f',5.2) mytxt = 'Padding with zeroes: 0000005.20' >>
示例 4:使用零 (0) 进行填充
>> mytxt = sprintf('Padding with zeroes: %010.2f',5.2) mytxt = 'Padding with zeroes: 0000005.20' >>
标识符
标识符是指给代码中的变量、函数或其他元素指定的名称。在文本格式化方面,标识符可用于指定应在格式化字符串中插入值的位 置。
要在 MATLAB 中的文本格式化中包含标识符,您可以使用 % 字符后跟一个数字(或可选名称),该数字指定输入参数列表中相应参数的位置。
示例
>> a = 'My age is: '; b = 25; mystr = sprintf('%s %d', a, b) mystr = 'My age is: 25' >>
使用 compose() 方法进行文本格式化
MATLAB 中的 compose() 函数将其第一个参数作为格式说明符字符串,并将一个或多个值或变量作为后续参数。它通过用提供的值替换格式说明符中的占位符来返回格式化字符串。
示例
a = 'My age is: '; b = 25; mystr = compose('%s %d', a, b)
在 matlab 中执行后,输出为
>> a = 'My age is: '; b = 25; mystr = compose('%s %d', a, b) mystr = 1×1 cell array {'My age is: 25'} >>
使用 num2str() 方法进行文本格式化
MATLAB 中的 num2str() 函数用于将数值转换为其对应的字符串表示形式。它接受一个或多个数值输入值,并返回这些值的字符串表示形式。
num2str 的基本语法为:
str = num2str(value, format)
- 值表示您要转换为字符串的数值或数组。
- 格式(可选)指定结果字符串的格式。它可以是格式说明符,例如整数的 '%d' 或浮点数的 '%0.2f' 等。
示例
pi_value = 3.14159; str = num2str(pi_value, '%0.3f')
在 matlab 中执行后,您将获得
>> pi_value = 3.14159; str = num2str(pi_value, '%0.3f') str = 3.142 >>
使用 fprintf() 方法进行文本格式化
MATLAB 中的 fprintf() 函数用于将格式化数据写入文件或命令窗口。它允许您以灵活且组织有序的方式组合文本和数据。
fprintf() 的基本语法为:
fprintf(format, A1…AN)
- 格式是一个字符串,指定输出的格式。它由静态文本和格式说明符组成,例如 %s、%d、%f 或 %e,这些说明符表示A中相应数据的占位符。
- A1..AN是要写入的数据,可以是标量、向量、矩阵或元胞数组。
示例
a = 'My age is: '; b = 25; fprintf('%s %d', a, b)
在 matlab 中执行后,您将获得
>> a = 'My age is: '; b = 25; fprintf('%s %d', a, b) My age is: 25 >>