图像缩略图

科学前缀的数字

版本3.2.1(19 KB)由 史蒂芬
将数值转换为公制前缀字符串(SI/工程)。附加:二进制前缀!

1.3K下载

更新2020年7月10日

查看许可证

函数NUM2SIP将数值标量转换为带有度量前缀(也称为SI前缀或工程前缀)的字符串。例如,值1000转换为“1K”。

在MATLAB FEX上测试了提交的度量前缀(请参见确认),但没有找到一个能够正确转换所有值并支持正确SI间距的前缀,因此我编写了自己的函数。然后对它们进行详尽的测试,以确认它们确实给出了正确的输出。万博1manbetx

本划界案:
*始终包含空格字符(SI标准要求)。
*自动选择最合适的前缀。
*四舍五入到请求的有效数字(默认值==5)。
*前缀可以选择为全名('kilo')或符号('k')。
*包含或删除尾部小数点零的选项。
*当需要有效数字时,向上舍入到下一个前缀,例如“1 M”,而不是“1000 k”。

###奖金功能###

函数NUM2BIP将数字转换为带前缀的二进制字符串,例如,将值1024转换为“1 Ki”。

函数NUM2RKM将数字转换为RKM代码,例如,将值1200转换为“1k2”。

###反向转换###

要将公制前缀字符串转换为数字,请执行以下操作:

<//www.tianjin-qmedu.com/matlabcentral/fileexchange/53886-scientific-prefix-to-number>

###度量前缀示例###

>>num2sip(10000)或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='1K'

>>num2sip(0.5e6)
ans='500K'
>>num2sip(0.5e6,[],'M')
ans='0.5米'

>>['Power:',num2sip(200e6,[],true),'watt']
ans='功率:200兆瓦'

>>sprintf('时钟频率为%shertz',num2sip(1234567890,3,真))
ans='时钟频率为1.23千兆赫兹。'

>>num2sip(sip2num('9t'))%9tera==9e12==9*1000^4
ans='9 T'

###二进制前缀示例###

>>num2bip(10240)或num2bip(1.024e4)或num2bip(pow2(10,10))或num2bip(10*2^10)
ans='10千分'
>>num2bip(10240,4,真)
ans='10 kibi'
>>num2bip(10240,4,假,真)
ans='10.00千磅/平方英寸'

>>num2bip(1023,3)
ans='1020'
>>num2bip(1023,2)
ans='1ki'

>>num2bip(pow2(19))
ans='512 Ki'
>>num2bip(pow2(19),[],'Mi')
ans=‘0.5英里’

>>['Memory:',num2bip(pow2(200,20),[],true),'byte']
ans='内存:200兆字节'

>>sprintf('以%s字节保存的数据',num2bip(1234567890,3,真))
ans='以1.15吉字节保存的数据。'

>>num2bip(bip2num('9ti'))%9tebi==pow2(9,40)==9*1024^4
ans='9 Ti'

###度量前缀###

震级|符号/名称
1000^-8| y/约克托
1000^-7| z/zepto
1000^-6| a/阿托
1000 ^-5 | f/毫微秒
1000^-4| p/pico
1000^-3|n/纳米
1000^-2µ/微米
1000^-1|m/milli
1000^0 |
1000^1|k/千克
1000^2米/兆瓦
1000^3克/千兆
1000^4|T/tera
1000^5 | P/peta
1000^6 | E/exa
1000^7|Z/zetta
1000^8|Y/约塔

###二进制前缀(IEC 60027-2 A.2和ISO/IEC 80000-13-2008)###

震级|符号/名称
1024^0 |
1024^1|Ki/kibi
1024^2|Mi/mebi
1024^3 | Gi/gibi
1024^4|Ti/tebi
1024^5 | Pi/pebi
1024^6| Ei/exbi
1024^7|Zi/zebi
1024^8 |易/尤比

###注释###

这些函数已针对许多边缘情况进行了广泛测试,特别注意确保所有有效数字的正确舍入。与MATLAB文件交换上提供的类似提交相比,这些函数正确:
*在系数和前缀之间包含空格字符,即使没有前缀(请尝试1)。
*四舍五入到要求的有效数字(尝试0.999或999e3,使用1或2个有效数字)。
*返回一个不带前缀的系数,其值不在前缀范围内(请尝试0、Inf、1E30)。
*当有效数字小于3时,返回一个不带指数的系数(尝试1e5到1sigfig)。

引用为

斯蒂芬(2021)。科学前缀的数字(//www.tianjin-qmedu.com/matlabcentral/fileexchange/33174-number-to-scientific-prefix),MATLAB中央文件交换。恢复.