Как отображать длинные цифры без научной записи в Matlab? - PullRequest
0 голосов
/ 17 сентября 2018

Как отображать длинные числа без научной нотации в Matlab?

format long g не помогает

>> A=single([1456267123000 16.5])
A =
  1×2 single row vector
    1.456267e+12            16.5
>> format long g
>> A
A =
  1×2 single row vector
    1.456267e+12            16.5

Я бы ожидал, что результат будет выглядеть следующим образом

    1456267123000           16.5

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Возможно, вы захотите попробовать mat2str, который позволяет указать желаемое количество цифр точности, а также работает для матриц. Например:

>> mat2str(pi, 30)
ans =
    '3.14159265358979311599796346854'

>> mat2str([1456267123000 16.5], 20)
ans =
    '[1456267123000 16.5]'
0 голосов
/ 17 сентября 2018
  • Если вы можете отобразить только два десятичных знака, вы можете использовать format bank:

    >> format long
    >> pi*1e6
    ans =
         3.141592653589793e+06
    >> pi*1e25
    ans =
         3.141592653589793e+25
    
    >> format bank
    >> pi*1e6
    ans =
        3141592.65
    >> pi*1e25
    ans =
     31415926535897934939029504.00
    
  • Или использовать более явный и гибкий sprintf подход:

    >> sprintf('%.7f', pi*1e6) % fixed-point, 7 decimals
    >> disp(sprintf('%.7f', pi*1e6))
    3141592.6535898
    

    Если вы просто хотите отобразить результат, который вы также можете использовать, как отмечено @ Dev-iL ,

    >> fprintf(1, '%.7f\n', pi*1e6) % fixed-point, 7 decimals
    3141592.6535898
    

    или даже

    >> fprintf('%.7f\n', pi*1e6) % fixed-point, 7 decimals
    3141592.6535898
    
...