文件交换

图片缩略图

num2eng

1.1.4版(4.92 KB)通过 HarryDymond
将数字转换为工程符号字符串,或者可以选择使用si前缀

3个下载

更新2020年2月23日

查看许可协议

输入的数值转换为工程格式的字符串,在任一科学格式倍数 - - 三指数,或使用SI前缀例如K,M,N,P等也支持向量/矩阵的输入。金宝app

首先,让我解决了一个问题:我们真的需要这些其它的吗?目前已经在文件交换几个num2eng和num2si功能。是什么让这一个唯一的方法是:
它支持金宝app标量、向量和矩阵输入
它返回使用或者SI前缀或工程格式的科学记数法的字符串
它可以选择使用希腊小写mu (unicode U+03BC)作为SI前缀,用于表示大小为>=1e-6和<1e-9的数字。
它可以选择使用真负号(unicode U+2212)而不是连字符-减号(U+002D)
它适当地处理边缘情况,如舍入、空输入、非数值输入等。
它支持金宝app复数输入。

语法:string = num2eng(number,[useSIPrefix],[useMu],[spaceAfterNumber],[sigFigs],[fullName],[useMinus]),其中方括号中的输入变量是可选的——即该函数接受1到7个输入,包括所有输入。

输入变量:
number:要转换为字符串的数值。如果这是惟一的输入,则返回的字符串将采用三次幂的科学格式。例如num2eng(0.001)将返回字符串“1e-3”(不包括引号)。如果number是空的(例如[])或者不是数字,返回的字符串将是",或者''如果spaceAfterNumber=true。如果“number”是一个向量或矩阵,num2eng将返回一个与数字矩阵具有相同“形状”的单元矩阵,每个单元有一个字符串。支持复数,但如果虚部非零,则不使用SI前金宝app缀。

useSIPrefix:逻辑。(或者可以用0/1来代替true/false)。当设置为真时,SI前缀将用于1 y到999.999范围内的任何abs(数字)…Y,而不是科学符号。

useMu:逻辑。如果useSIPrefix =真,和ABS(数)为> = 1E-6和<1E-9,小写希腊语亩(UNICODE U + 03BC)将被使用。否则,“U”将在这里代替。

spaceAfterNumber:逻辑。如果为true,则空间将被输出字符串的数字部分后插入集,“E”,如果输出字符串是在科学的格式后,在所有情况下,useSIPrefix = TRUE,即使是-999.99之间的数字..。和999.99 ...

sigFigs:整数。指定多少显著数字应该在输出字符串。如果没有指定,默认为5。

这是合乎逻辑的。如果fullName=true,则使用SI前缀的全名,而不只是一个字母。

useMinus:逻辑。如果useMinus =真,并且输入的数量和/或指数为负时,返回的字符串将用“适当的”负字符(U + 2212)而不是默认的ASCII连字符减号(U + 002D)。

例子(“x”在以下例子中表示“不关心”/“不相关”):
num2eng(0.001,真)将返回字符串 '1 M'
num2eng(2.56e29,true)将返回字符串“256e+27”
num2eng(1.5,TRUE)将返回字符串 '1.5'
num2eng(-1.2e5,1)将返回字符串 '-120 K'

num2eng(10e-6,true)将返回字符串“10u”
num2eng(10e-6,true,true)将返回字符串“10 ”,其中是小写的希腊字母mu字符(unicode U+03BC)

num2eng(0.001,真实,X,X)将返回字符串 '1 M'
num2eng(0.001,false,x,true)将返回字符串“1e-3”
num2eng(2.56e29,true,x,true)将返回字符串“256e+27”
num2eng(1.5,true,x,true)将返回字符串“1.5”

num2eng(0.001,1,0,0,5,1)将返回字符串“1毫”
num2eng(2.56e29,true,false,false,5,true)将返回字符串“256e+27”
num2eng(1.5,真,假,假,5,真)将返回字符串 '1.5'
num2eng(999999,真实,0,0,4,真)将返回字符串 '1万'

num2eng(-0.001,false,x,x,x,false,true)将返回字符串'−1e−3'

如果你想在一个图形来代替刻度线标签上的矢量处理是特别方便。例如,如果“斧头”是一个句柄一些MATLAB轴,尝试:ax.XRuler.Exponent = 0;ax.XTickLabel = num2eng(ax.XTick,[选项...])

引用作为

哈里Dymond报道(2019)。num2eng(//www.tatmou.com/matlabcentral/fileexchange/67740),MATLAB中央文件交换。检索2019年7月16日。

评论和评分(5)

张胸

很好,现在成功了。非常感谢。

HarryDymond

您好再次@Chang雄。我相信问题是与使用iptnum2ordinal功能。不知怎的,我的MATLAB的拷贝管理没有检测到许可证,图像处理工具箱来执行iptnum2ordinal功能!反正我现在已经取代调用该函数,所以你现在应该可以使用num2eng。

HarryDymond

@Chang hsiung,感谢您对我的功能感兴趣。你用的是什么版本的MATLAB ?该函数是在MATLAB版本2016a中开发的,并且根据我的测试,不需要图像处理工具箱。如果您使用的至少是MATLAB的2016a版本,请问您拨打的具体数字是多少?

张胸

你有一个不需要图像处理工具箱的版本吗?

更新

1.1.4

- 已还原使用U + 03BC(希腊字母亩),用于微字符。
- 在2018年MATLAB代码分析器的建议这将导致之前版本这表明逗号可/应删除添加逗号代码。

1.1.3

如果输入的数字是负无穷,useMinus选项现在被尊重

1.1.2

较小的代码清理(功能没有变化)

1.1.1

改变图标

1.1

加入返回的字符串使用真正的减号(U + 2212)的选项。使用早期版本num2eng并不需要更改代码 - 新的选项,以这样的方式补充说,该功能将保持向后兼容。

1.0.6

功能输入不再使用varargin,使功能提示更加有用。输入2到6留可选的。

1.0.4.0

函数应该不再需要图像处理工具箱

1.0.3.0

选项“fullName”现在覆盖选项“useMu”
如果输入是列向量,那么输出将是单元格的列向量,而不是单元格的行向量

1.0.2.0

更新说明

1.0.1.0

更新说明

1.0.1.0

更新说明

1.0.1.0

更新说明

1.0.1.0

更新FEX图标

1.0.1.0

改变FEX图标

1.0.1.0

改变FEX图标

1.0.1.0

固定一个错字

1.0.1.0

固定一个错字

MATLAB版本兼容性
创建了R2016a
与任何版本兼容
平台的兼容性
视窗 苹果系统 Linux
确认

启发:数字到科学前缀