输入的数值转换为工程格式的字符串,在任一科学格式倍数 - - 三指数,或使用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
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日。
1.1.4 | - 已还原使用U + 03BC(希腊字母亩),用于微字符。 |
|
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 | 固定一个错字 |
才气Kalitzeos(查看资料)
张胸(查看资料)
很好,现在成功了。非常感谢。
HarryDymond(查看资料)
您好再次@Chang雄。我相信问题是与使用iptnum2ordinal功能。不知怎的,我的MATLAB的拷贝管理没有检测到许可证,图像处理工具箱来执行iptnum2ordinal功能!反正我现在已经取代调用该函数,所以你现在应该可以使用num2eng。
HarryDymond(查看资料)
@Chang hsiung,感谢您对我的功能感兴趣。你用的是什么版本的MATLAB ?该函数是在MATLAB版本2016a中开发的,并且根据我的测试,不需要图像处理工具箱。如果您使用的至少是MATLAB的2016a版本,请问您拨打的具体数字是多少?
张胸(查看资料)
你有一个不需要图像处理工具箱的版本吗?