函数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中央文件交换。恢复.
MATLAB版本兼容性
平台兼容性
窗户 马科斯 Linux标签
致谢
灵感来自:num2eng,英语,num2eng,带公制前缀的num2str,num2sci,sci2num,可定制的自然顺序排序,MetricPrefixStr-打印SI前缀格式的数字,字数,字数转换
受到启发的:字数转换,四舍五入到电子元件值,num2eng,振动列线图,NUM2ENG:从数字到工程符号(SI)的快速转换,数不胜数,可定制的自然顺序排序,数字到序数字符串,字数,自然顺序行排序,自然顺序文件名排序,交互式正则表达式工具