我遇到一个问题,一个8位数的字符串(如"313397E9")被传递到excel中,然后读取为数字"313397000000000"或"3.133970e+014"。
然后由Matlab读取,并将其识别为数字,而不是字符串。将其转换回8位字符串的最简单方法是什么?
提前感谢您的帮助。
正则表达式来拯救!您可以使用REGEXPREP将尾部的零转换为Ex,其中x是您刚刚替换的零的数量。
%# convert the number to a string
nn = num2str(3.133970e+014)
nn =
313397000000000
%# replace zeros using regexprep
regexprep(nn,'([0]*)','E${num2str(length($1))}')
ans =
313397E9
如果nn
是一个字符串的单元格数组,那么这也适用,btw,所以你可以一次转换你的数字列表。