WORDS2NUM将英文单词中数字值为的字符串转换为数字向量:例如,字符串“壹仟贰拾肆”作为标量数字1024返回。WORDS2NUM接受包含零个或多个数字子字符串的字符串,并返回一个数字向量,每个检测到的数字子字符串包含一个元素。选项允许用户选择:
*输出数值向量的类:double、single、uintX或intX。
*大写/小写/标题/句子大小写。
单词之间使用空格。
*在震级组之间使用逗号。
*在十和一之间使用连字符。
*在十位数/一位数之前使用“and”(英联邦英语要求)。
*空格字符/ s
*编号比例:短/长/佩尔蒂埃/罗利特/克努特(-yllion)。
###奖金功能/脚本###
WORDS2NUM_TEST包含数千个测试用例。
* WORDS2NUM_DEMO将WORDS2NUM的输出与真实示例进行比较。
###反向转换###
//www.tatmou.com/matlabcentral/fileexchange/47221-number-to-words
# # # # # #例子
>>words2num('zero'))
ans=0
>>words2num('壹仟贰拾肆')
ans=1024
>>words2num('壹仟零贰拾肆’、'white'、'UUZ')
ans=1024
>>words2num('壹仟零贰拾肆','case','lower')
ans=4
>>words2num('壹仟零贰拾肆','case','upper')
ans = 20
>> words2num('One Thousand and 24 ',' case','title')
ans = 1000
>>words2num('壹仟贰拾肆','hyphen',false)
ans=[1020,4]
>> words2num('One Thousand and TWENTY-four', 'and',false)
ans =[24] 1000年,
>>words2num('壹仟零贰拾肆','suffix','-')
ans=1020
>> [num,spl] = words2num('负32的平方是1024 .')
num=[-321024]
SPL = {",' squared is ','.'}
>> [num,spl] = words2num(' 123英镑45便士')
num = (123, 45)
spl={'','磅和','便士'}
>>[num,spl]=words2num('pi=threepointonefouronefiveninetwosixfivethreefiveeight')
num=3.14159265358
spl={'pi=',''}
>> [num,spl] = words2num('一百零一条斑点狗')
num = 101
spl={'','Dalmatians'}
>> words2num('一百七十九unentillion ')
ans = 1.79 e + 308
>>words2num('一百八十亿美元')%%>realmax
ans=Inf
>> words2num(' 180 unentillion ',' class','int64')
ans = + 9223372036854775807
>>words2num(num2words(intmin('int64')),'class','int64')
ans = -9223372036854775808
>>words2num(‘一点零零二零零三万亿’)
ans = 1002003000000
>> words2num(' 1万亿,20亿,300万')
ans = 1002003000000
>> words2num('one trillion, twenty billion three million', 'comma',true, 'and',true)
ans=[100200000003000000]
>>words2num('1万亿,20亿,300万,'逗号',假)
ans = (1000000000000, 1000000000000)
>> words2num('one million million', 'mag','compound')
ans=1000000000000
>>words2num('10亿,'scale','short')
ans=100000000
>> words2num(' 100000000000 ',' scale','long')
ans=100000000
>> words2num('one million ',' scale',' peltier ')
ans=100000000
>> words2num(' 1 billion ',' scale','rowlett')
ans=100000000
>>words2num('ten myllion'、'scale'、'knuth')
ans=100000000
> > words2num(负无穷)
ans =负
>>words2num('Not-a-Number')
ans =南
引用为
斯蒂芬(2021)。单词数量(//www.tatmou.com/matlabcentral/fileexchange/52925-words-to-number), MATLAB中央文件交换。检索.
MATLAB版本兼容性
平台兼容性
窗户 macOS Linux标签
致谢
灵感来自:num2english,num2english,可变精度整数算法,科学前缀的数字,ISO 8601日期字符串的日期向量/编号,可定制的自然顺序排序,ISO 8601日期字符串到序列日期编号,数字到序数字符串,字数,自然秩序行排序,自然秩序文件名排序,数字转换,数无数
受到启发的:四舍五入到电子元件值,科学数字前缀,科学前缀的数字,可定制的自然顺序排序,数字到序数字符串,字数,自然秩序行排序,自然秩序文件名排序