SIP2NUM、BIP2NUM举例
这个函数SIP2NUM将字符向量(包含带有可选度量前缀的数字)转换为数字,例如'1 k' -> 1000。该函数可以检测和转换字符串中的多个数字,包括带度量前缀的和不带度量前缀的。SIP2NUM返回数值、由检测到的数字(和前缀)分割的字符串部分,以及每个检测到的数字中检测到的有效位数。
的发展SIP2NUM是由于缺乏编写良好的函数来提供这种转换:FEX上的许多可用函数不符合SI标准,或者使用有bug的转换算法,或者只是非常慢。SIP2NUM已经针对大量测试用例进行了测试,包括许多边缘用例和所有可选参数。
在SIP2NUM和BIP2NUM这个词的文档字符串是指一个1xN字符向量,而不是MATLAB字符串类。
内容
基本用法
在许多情况下SIP2NUM可以用一个字符串值来调用:
sip2num (“1.2 k”) sip2num (“3.45 gb”) sip2num ('6.7µV和89 mOhm')
Ans = 1200 Ans = 3450000000 Ans = 6.7e-06 0.089
第二个输出:分裂字符串
SIP2NUM也返回由检测到的数字分割的字符串部分:
(num, spl) = sip2num (“我用了23 MV 5毫秒。”)
num = 23000000 0.005 spl = 'I applied 'V for 's.'
第三输出:有效数字
SIP2NUM返回检测到的数字的有效位数:
(num ~,山东)= sip2num ('987.6 kV还是0.99 MV ?')
Num = 987600 990000 SGF = 4
第二输入:指定单位
有些单元可能会被误认为是前缀,在这种情况下,第二个输入参数可以用来强制将单元标识为前缀。可选地提供units字符串,这些单元将被忽略:
(num, spl) = sip2num (“100米”)% 'm'被错误地标识为前缀(num, spl) = sip2num (“100米”,“米”)%指定获得正确值的单位
Num = 0.1 SPL = " eter " Num = 100 SPL = " meter "
第二输入:符号或全名
默认情况下SIP2NUM将尝试匹配前缀符号或完整前缀名。可选的第二个输入参数可用于强制SIP2NUM只匹配前缀符号或前缀名:
(num, spl) = sip2num (100毫假)仅%匹配符号(num, spl) = sip2num (100毫,真正的)%只匹配前缀名(num, spl) = sip2num (“100”,真正的)%不能匹配名称->只匹配数字
Num = 0.1 SPL = " 'illi' Num = 0.1 SPL = '' '' Num = 100 SPL = " 'm'
微的象征
为了方便SIP2NUM识别三个不同的“微”字符:
sip2num (' 1 u ')% ASCII (U + 0075)'拉丁语小写字母u 'sip2num (“µ1”)% iso 8859-1 (u + 00b5)“微信号”sip2num (sprintf (“1 \ xB5”))% (U + 00 b5)“微信号”sip2num (sprintf (“1 \ x3BC”))%(公元前U + 03)希腊小写字母mu
Ans = 1e-06 Ans = 1e-06 Ans = 1e-06
空格字符
为了方便SIP2NUM标识许多不同的空格字符,例如:
sip2num (sprintf (“1 \ x0020u”))% (U + 0020)“空间”sip2num (sprintf (“1 \ x00A0u”))% (U + 00 a0)“不中断空间”sip2num (sprintf (“1 \ x2007u”))% (U + 2007)“数字空间”sip2num (sprintf (“1 \ x202Fu”))% (U + 202 f)“窄不中断空间”sip2num (sprintf (“1 \ x205Fu”))% (U + 205 f)“中等数学空间”
Ans = 1e-06 Ans = 1e-06 Ans = 1e-06
奖金:BIP2NUM二进制前缀的函数
提交包含奖金功能BIP2NUM:将带有前缀的字符串转换为指定的ISO 80000的数值二进制前缀而不是公制前缀。二进制前缀用于计算机存储器。
这个函数BIP2NUM有完全相同的论点SIP2NUM:
bip2num (“0.999 kibi”) [num,spl,sgf] = bip2num(“1.001 kibi”,真正的)
Ans = 1022.976 num = 1025.024 SPL = '' '' SGF = 4
奖金:RKM2NUMRKM-Code函数
提交包含奖金功能RKM2NUM:将带有前缀的字符串转换为指定的IEC 60062的数值RKM代码而不是公制前缀。RKM代码用于电阻器和电容器。
rkm2num (“1 r2”) rkm2num (“4 k7”)
Ans = 1.2 Ans = 4700
反向转换:数字到字符串
的函数NUM2SIP和NUM2BIP和NUM2RKM从数字转换为字符串:
num2bip (1280) num2sip (1250) num2rkm (1250)
ans = 1.25 Ki ans = 1.25 k ans = 1k25