我遇到一个问题,即将一个8位数的字符串(例如'313397E9')传递给excel,然后读作数字'313397000000000'或'3.133970e + 014'。
然后由Matlab读取并识别为数字,而不是字符串。将它转换回8位数字符串的最简单方法是什么?
提前感谢您的帮助。
答案 0 :(得分:5)
Regular expressions to the rescue!您可以使用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
是字符串的单元格数组,顺便说一下,这也有效,因此您可以一次性转换数字列表。