参考:https://ww2.mathworks.cn/help/matlab/ref/num2str.html?searchHighlight=num2str&s_tid=doc_srchtitle

num2str

将数字转换为字符数组

全页折叠
 

说明

示例

s = num2str(A) 将数值数组转换为表示数字的字符数组。输出格式取决于原始值的量级。num2str 对使用数值为绘图添加标签和标题非常有用。

示例

s = num2str(A,precision) 返回表示数字的字符数组,最大有效位数由 precision 指定。

示例

s = num2str(A,formatSpec)formatSpec 指定的格式应用到 A 所有元素。

 

示例

全部折叠

浮点值的默认转换

pieps 返回的浮点值转换为字符向量。

s = num2str(pi)
s =
'3.1416'
s = num2str(eps)
s =
'2.2204e-16'
 
 

指定精度

指定浮点值的最大有效位数。

A = gallery('normaldata',[2,2],0);
s = num2str(A,3)
s = 2x16 char array
'-0.433 0.125'
' -1.67 0.288'
 
 

指定格式

指定浮点值数组的宽度、精度及其他格式。

A = gallery('uniformdata',[2,3],0) * 9999;
s = num2str(A,'%10.5e\n')
s = 2x35 char array
'9.50034e+03...'
'2.31115e+03...'

格式 '%10.5e' 使用具有五个小数位数的指数格式输出各个值,'\n' 输出换行符。

 
 

输入参数

全部折叠

A - 输入数组
数值数组

输入数组,指定为数值数组。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
复数支持:

precision - 有效数字最大位数
正整数

输出字符串中的有效数字最大位数,指定为正整数。

注意

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

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

formatSpec - 输出字段的格式
格式化操作符

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

formatSpec 可以是用单引号引起来的字符向量,从 R2016b 开始,也可以是字符串标量。

格式化操作符

格式化操作符以百分号 % 开头,以转换字符结尾。转换字符是必需的。您也可以在 % 和转换字符之间指定标识符、标志、字段宽度、精度和子类型操作符。(操作符之间的空格无效,在这里显示空格只是为了便于阅读。)

转换字符

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

值类型 转换 详细信息

有符号整数

%d%i

以 10 为基数

无符号整数

%u

以 10 为基数

%o

以 8 为基数(八进制)

%x

以 16 为基数(十六进制),小写字母 af

%X

%x 相同,大写字母 AF

浮点数

%f

定点记数法(使用精度操作符指定小数点后的位数。)

%e

指数记数法,例如 3.141593e+00(使用精度操作符指定小数点后的位数)。

%E

%e 相同,但为大写,例如 3.141593E+00(使用精度操作符指定小数点后的位数)。

%g

更紧凑的 %e%f,不带尾随零(使用精度操作符指定有效数字位数。)

%G

更紧凑的 %E%f,不带尾随零(使用精度操作符指定有效数字位数。)

字符或字符串

%c

单个字符

%s

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

可选操作符

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

  • 标识符

    处理函数输入参数的顺序。使用语法 n$,其中 n 代表函数调用中其他输入参数的位置。

    示例:('%3$s %2$s %1$s %2$s','A','B','C') 将输入参数 'A''B''C' 输出为:C B A B

    注意:如果输入参数为数组,则不能使用标识符指定该输入参数中的特定数组元素。

  • 标志

    '–'

    左对齐。
    示例:%-5.2f
    示例:%-10s

    '+'

    始终为任何数值输出符号字符(+ 或 –)。
    示例:%+5.2f
    右对齐文本。
    示例:%+10s

    ' '

    在值之前插入空格。
    示例:% 5.2f

    '0'

    在值之前补零以填充字段宽度。
    例如:%05.2f

    '#'

    修改选定的数值转换:

    • 对于 %o%x%X,将输出 00x0X 前缀。

    • 对于 %f%e%E,即使精度为零也将输出小数点。

    • 对于 %g%G,不删除尾随零或小数点。

    示例:%#5.0f

  • 字段宽度

    要输出的最低字符数。字段宽度操作符可以是数字,也可以是指向输入参数的星号 (*)。

    当您将 * 指定为字段宽度操作符时,其他输入参数必须指定打印宽度和要打印的值。宽度和值可以是参数对组,也可以是数值数组中的对组。使用 * 作为字段宽度操作符时,您可以打印具有不同宽度的不同值。

    示例:输入参数 ('%12d',intmax) 等效于 ('%*d',12,intmax)

    示例:输入参数 ('%*d',[2 10 5 100]) 返回 '10 100',其中两个空格分配给 10,五个空格分配给 100。您也可以将字段宽度和值指定为多个参数,如 ('%*d',2,10,5,100) 中所示。

    除非标志另行指定,否则该函数使用空格填充值之前的字段宽度。

  • 精度

    对于 %f%e%E

    小数点右侧的位数
    示例:'%.4f'pi 输出为 '3.1416'

    对于 %g%G

    有效位数
    示例:'%.4g'pi 输出为 '3.142'

    精度操作符可以是数字,也可以是指向参数的星号 (*)。

    当您将 * 指定为字段精度操作符时,其他输入参数必须指定打印精度和要打印的值。精度和值可以是参数对组,也可以是数值数组中的对组。使用 * 作为精度操作符时,您可以打印具有不同精度的不同值。

    *.* 指定为字段宽度和精度操作符时,必须以三元组形式指定字段宽度、精度和值。

    示例:输入参数 ('%.4f',pi) 等效于 ('%.*f',4,pi)

    示例:输入参数 ('%6.4f',pi) 等效于 ('%.*f',6,4,pi)

    示例:输入参数 ('%*.*f',6,4,pi,9,6,exp(1)) 返回 '3.1416 2.718282',其中以 96 分别作为 exp(1) 输出的字段宽度和精度。

    注意

    如果您为浮点值指定的精度操作符所表示的精度超出输入数值数据类型的精度,则在指定精度内,结果与输入值可能不匹配。结果取决于您的计算机硬件和操作系统。

  • 子类型

    可以使用子类型操作符将浮点值显示为八进制、十进制或十六进制值。子类型操作符紧邻转换字符之前。此表显示了可使用子类型的转换。

    输入值类型

    子类型和转换字符

    输出值类型

    浮点数

    %bx%bX
    %bo
    %bu

    双精度十六进制、八进制或十进制值
    例如:%bxpi 输出为 400921fb54442d18

    %tx%tX
    %to
    %tu

    单精度十六进制、八进制或十进制值
    例如:%txpi 输出为 40490fdb

格式化操作符前或后的文本

formatSpec 还可以在百分号 % 前添加其他文本,或者在转换字符后添加其他文本。文本可以为:

  • 要打印的普通文本。

  • 您无法作为普通文本输入的特殊字符。此表显示了如何在 formatSpec 中表示特殊字符。

    特殊字符

    表示形式

    单引号

    ''

    百分比字符

    %%

    反斜杠

    \\

    警报

    \a

    退格符

    \b

    换页符

    \f

    换行符

    \n

    回车符

    \r

    水平制表符

    \t

    垂直制表符

    \v

    其 Unicode 数值可以通过十六进制数 N 表示的字符

    \xN

    示例:sprintf('\x5A') 返回 'Z'

    其 Unicode 数值可以通过八进制数 N 表示的字符

    \N

    示例:sprintf('\132') 返回 'Z'

使用格式化操作符进行转换时要注意的行为

  • 数值转换仅输出复数的实部。

  • 如果指定不适合数据的转换(例如数值的文本转换),MATLAB 将改写指定的转换并使用 %e

    示例:'%s'pi 转换为 3.141593e+00

  • 如果对整数值应用文本转换(%c%s),MATLAB 会将对应于有效字符代码的值转换为字符。

    示例:'%s'[65 66 67] 转换为 ABC

数据类型: char | string

输出参数

全部折叠

s - 输入数组的文本表示形式
字符数组

输入数组的文本表示形式,以字符数组的形式返回。

提示

num2str 不接受 formatSpec 输入参数中的位置标识符。例如,num2str([14 15],'%2$X %1$o) 将返回错误。

位置标识符指定格式化操作符处理函数的输入参数的顺序,而不是处理输入数组的元素的顺序。当您调用 num2str 时,只有一个输入参数包含要转换的数字。

算法

num2str 将删除字符数组中的任何前导空格,即使 formatSpec 包含空格字符标志也是如此。例如,num2str(42.67,'% 10.2f') 返回一个 1×5 字符数组 '42.67'

扩展功能

C/C++ 代码生成
使用 MATLAB Coder 生成 C 代码和 C++ 代码。

用法说明和限制:

  • 输入参数必须是常量。

GPU 数组
通过使用 Parallel Computing Toolbox 在图形处理单元 (GPU) 上运行来加快代码执行。

此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。

另请参阅

cast | int2str | mat2str | sprintf | str2num

matlab中num2str 将数字转换为字符数组的更多相关文章

  1. c++中string类对象和字符数组之间的相互转换

    string类在c++中是一个模板类,位于名字空间std中,注意这里不是string.h,string.h是C字符串头文件. 将string类型转换为字符数组char arr[10];string s ...

  2. matlab 中txt文件(含字符及数值)处理

    matlab 中txt文件(含字符及数值)处理 (2008-08-02 09:45:12) 转载▼ 标签: 杂谈 分类: matlab及C学习 Matlab文件操作及读txt文件ZZ 2008-07- ...

  3. matlab中upper 将字符串转换为大写

    参考:https://ww2.mathworks.cn/help/matlab/ref/fprintf.html?searchHighlight=fprintf&s_tid=doc_srcht ...

  4. matlab中num2str的应用

    在求导数,积分,方程的过程中,难免会遇到一些参数要随着情况有点变化,这时,你就需要能够动态的表示出你的表达式,Num2str函数是一个相当有用的函数,一般配合[]连接符使用,下面将我接触到的一些用法写 ...

  5. Matlab中num2str函数的用法

    转载:https://blog.csdn.net/SMF0504/article/details/51836062 函数功能: 把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出 ...

  6. Java 将字符串转换为字符数组 toCharArray()

    Java 手册 toCharArray public char[] toCharArray() 将此字符串转换为一个新的字符数组. 返回: 一个新分配的字符数组,它的长度是此字符串的长度,它的内容被初 ...

  7. Java中如何拆分字符串为字符数组

    题目:输入一串字符,由(){}[]组成,判断是否所有的括号都是闭括号,是的返回TRUE,不是返回FALSE. /*输入字符串,拆解为字符数组 * 用函数s.charAt(i)来完成 * * */imp ...

  8. 注意SSIS中的DT_NUMERIC类型转换为字符类型(比如DT_WSTR)时,会截断小数点前的0

    我们知道SSIS中有许多数据类型,如下图所示: 但是DT_NUMERIC这个类型有个陷进要注意,我们来做个实验,随便定义一个String类型的SSIS包变量,然后打开该变量表达式窗口: 在变量表达式窗 ...

  9. 面试题3--数组中的重复数字(new数组的新写法)

    总是忘了一些条件的判断,比如非空或者其他之类. #include<iostream> using namespace std; int Frepeat(int num[],int leng ...

随机推荐

  1. CPU有个禁区,内核权限也无法进入!

    神秘项目 我是CPU一号车间的阿Q,是的,我又来了. 最近一段时间,我几次下班约隔壁二号车间虎子,他都推脱没有时间,不过也没看见他在忙个啥. 前几天,我又去找他,还是没看到他人,却意外地在他桌上发现了 ...

  2. Event loop详解(包含Node端)

    Event loop事件循环,是一个执行模型.不同的浏览器以及Nodejs里的具体实现是不一样的. 一,浏览器端: HTML5规范里有明确定义,简单的说: 1,JS是单线程的,执行的时候在一条主栈上: ...

  3. Pytest-allure 生成美观好看的测试报告

    在我们使用pytest-allure生成测试报告时,需要分为以下几步来执行 1.pytest TestCal.py --alluredir=/tmp/my_allure_results[这一步,是设置 ...

  4. Unity调试外部DLL

    1.更改DLL的.csproj工程配置文件,在里面添加如下属性:<PropertyGroup Condition=" '$(OS)' == 'Unix' ">     ...

  5. 组件给App全局传值vue-bus的使用

    npm安装 npm install vue-bus main.js引入 import VueBus from 'vue-bus' Vue.use(VueBus) 组件 getHouse(e){ thi ...

  6. SSM整合+WebUpload使用(spring+springmvc+mybatis+maven)

      SSM框架整合以及webupload的集成与使用 在项目中最近用到了webupload.js,也方方面面遇到了不少问题,比如上传文件前对表单参数校验,当校验失败不予提交,及在文件上传成功后,选择同 ...

  7. 跟着尚硅谷系统学习Docker-【day04】

    day04-20200716   p18.docker容器数据卷   docker容器中的数据,做持久化. 容器关闭以后容器内的数据就没有了. 保存到数据库或者服务器宿主机里面.   作用:容器间可以 ...

  8. IIS上传文件最大限制问题

    IIS服务器文件最大限制默认是30M. 自定义方法:修改配置文件,路径是:C:\Windows\System32\inetsrv\Config\applicationHost.config 在requ ...

  9. Oracle中真正稳妥的求三甲的方法

    坐地铁回家路上忽然想起,三甲排名可能为多个,只取三名岂不荒谬.不信请看下面数据: create table tb_score( id number(4,0) primary key, name nva ...

  10. leetcode刷题-56合并区间

    题目 给出一个区间的集合,请合并所有重叠的区间. 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]] 思路 通过设置一个移 ...