NUM2SIP函数将数字标量转换为带有度量前缀(即SI前缀或工程前缀)的字符串。例如,值1000被转换为'1 k'。
在测试了MATLAB FEX上的metric-prefix提交后(参见致谢),没有找到一个能够正确转换所有值并支持正确SI间距的函数,我编写了自己的函数。金宝app然后对它们进行全面测试,以确认它们实际上给出了正确的输出。
这个提交:
*总是包含空格字符(SI标准所要求的)。
*自动选择最合适的前缀。
*四舍五入到要求的有效数字(默认==5)。
*前缀可以选择为全名('kilo')或符号('k')。
*选项包括或删除尾随的十进制零。
*当需要有效数字时,取整到下一个前缀,例如:'1 M',不是'1000 k'。
###奖励功能###
NUM2BIP函数将数字转换为二进制前缀字符串,例如将值1024转换为“1 Ki”。
NUM2RKM函数将数字转换为RKM代码,例如将值1200转换为'1k2'。
###反向转换###
将以度量为前缀的字符串转换为数字:
<//www.tatmou.com/matlabcentral/fileexchange/53886-scientific-prefix-to-number >
###度量前缀示例###
>> num2sip(10000) OR num2sip(1e4)
Ans = ' 10k '
> > num2sip(10000 4,真的)
Ans = '10公斤'
> > num2sip(10000 4假,真的)
Ans = '10.00 k'
> > num2sip (999 3)
Ans = '999 '
> > num2sip (999 2)
Ans = '1 k'
> > num2sip (0.5 e6)
Ans = '500 k'
> > num2sip (0.5 e6,[],“M”)
ans = '0.5 M'
> > [': ', num2sip (200 e6,[],真的),“瓦特”)
ans = '功率:200兆瓦'
>> sprintf('Clock frequency is %shertz.',num2sip(1234567890,3,true))
ans = '时钟频率为1.23 ghz。'
>> num2sip(sip2num('9 T')) % 9 tera == 9e12 == 9*1000^4
ans = '9 T'
###二进制前缀示例###
>> num2bip(10240) OR num2bip(1.024e4) OR num2bip(pow2(10,10)) OR num2bip(10*2^10) OR num2bip(10*2^10)
ans = ' 10ki '
> > num2bip(10240 4,真的)
Ans = '10 kibi'
> > num2bip(10240 4假,真的)
ans = '10.00 Ki'
> > num2bip (1023 3)
Ans = '1020 '
> > num2bip (1023 2)
ans = '1 Ki'
> > num2bip (pow2 (19))
ans = '512 Ki'
> > num2bip (pow2(19),[],“小姐”)
ans = '0.5 Mi'
> >['记忆' num2bip (pow2(20) 200年,[],真的),“字节”)
ans = '内存:200 mebibyte'
>> sprintf('Data saved in %sbytes.',num2bip(1234567890,3,true))
ans = '数据保存在1.15 gibibytes.'
>> num2bip(bip2num('9 Ti')) % 9 tebi == pow2(9,40) == 9*1024^4
ans = '9 Ti'
###度量前缀###
符号/名称
1000^-8 | y / yocto
1000^-7 | z / zepto
1000^- 6| a / atto
1000^-5 | f / femto
1000^-4 | p / pico
1000^-3 | n / nano
1000^-2 |µ/微
1000^-1 | m /毫厘
1000 ^ 0 |
1000^1 | k / kg
1000^2 | M / mega
1000^3 | G / giga
1000^4 | T / tera
1000^5 | P / peta
1000^6 | E / exa
1000^7 | Z /
1000^8 | Y / yotta
###二进制前缀(IEC 60027-2 A.2和ISO/IEC 80000- 13:08) ### #
符号/名称
1024 ^ 0 |
1024^1 | Ki / kibi
1024^2 | Mi / mebi
1024^3 | Gi / gibi
10 ^4 | Ti / tebi
1024^5 | Pi / pebi
1024^6 | Ei / exbi
1024^7 | Zi / zebi
1024^8 | Yi / yobi
# # # # # #
这些函数已经在许多边缘情况下进行了广泛的测试,特别注意确保所有重要数字的选择都是正确的四舍五入。与MATLAB文件交换中提供的类似提交相比,这些函数正确:
*包括系数和前缀之间的空格字符,即使没有前缀(尝试1)。
*四舍五入到所要求的有效数字(尝试0.999或999e3,有1或2有效数字)。
*为0和前缀范围之外的值返回一个没有前缀的系数(尝试0,Inf, 1E30)。
当有效数字小于3时返回一个没有指数的系数(尝试1e5到1sigfig)。
引用作为
斯蒂芬(2021)。号码到科学前缀(//www.tatmou.com/matlabcentral/fileexchange/33174-number-to-scientific-prefix), MATLAB中央文件交换。检索.
MATLAB版本兼容性
平台的兼容性
窗户 macOS Linux标签
确认
启发:num2eng,eng2num,num2eng,带有度量前缀的Num2str,num2sci,sci2num,可定制的自然顺序排序,MetricPrefixStr -打印SI前缀格式的数字,号码的话,单词数量
启发:单词数量,四舍五入到电子元件值,num2eng,振动列线图,NUM2ENG:数字到工程符号(SI)的快速转换,数无数,可定制的自然顺序排序,数字,Ordinal-String,号码的话,自然秩序行排序,自然秩序文件名排序,交互式正则表达式工具