Преобразование строки в число с определенным форматом в Matlab - PullRequest
0 голосов
/ 12 января 2012
>> str = '0009.51998'
>> str2num(str)

или

>> sscanf(str,'%f')

ans = 9.5200

Я хочу получить это вместо:

ans = 9.51998

1 Ответ

3 голосов
/ 12 января 2012

Вы получаете это.Он просто округляется до четырех десятичных знаков при отображении.Выполните format long, чтобы увидеть больше точности.

>> str = '0009.51998';
>> x = sscanf(str, '%f')
x =
    9.5200
>> format long
>> x
x =
   9.519980000000000
>> 

Вы также можете использовать str2double как альтернативу sscanf.Это безопаснее и гибче, чем str2num.Это потому, что str2num использует команду eval.Например, попробуйте следующее:

  str2num(' figure();imshow(''peppers.png'')')

Вы можете быть удивлены результатами.

...