вопрос научной нотации - PullRequest
5 голосов
/ 09 июня 2011

У меня возникла проблема, когда 8-значная строка, такая как «313397E9», передается в Excel, а затем читается как число «313397000000000» или «3.133970e + 014».

Затем он читается Matlab и распознается как число, а не как строка. Какой самый простой способ преобразовать его обратно в 8-значную строку?

Заранее спасибо за вашу помощь.

1 Ответ

5 голосов
/ 09 июня 2011

Регулярные выражения для спасения! Вы можете использовать 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 - это массив ячеек строк, кстати, так что вы можете преобразовать список чисел за один раз.

...