matlab科学记谱法问题

时间:2011-06-09 13:41:41

标签: matlab scientific-notation

我遇到一个问题,即将一个8位数的字符串(例如'313397E9')传递给excel,然后读作数字'313397000000000'或'3.133970e + 014'。

然后由Matlab读取并识别为数字,而不是字符串。将它转换回8位数字符串的最简单方法是什么?

提前感谢您的帮助。

1 个答案:

答案 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是字符串的单元格数组,顺便说一下,这也有效,因此您可以一次性转换数字列表。