如何在Matlab中显示没有科学计数法的长整数?

时间:2018-09-17 15:33:57

标签: matlab formatting scientific-notation

如何在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 :(得分:2)

  • 如果只显示两个小数,可以使用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
    

答案 1 :(得分:1)

您可能想尝试使用mat2str,它可以指定所需的精度位数,并且也适用于矩阵。例如:

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

>> mat2str([1456267123000 16.5], 20)
ans =
    '[1456267123000 16.5]'