代码之家  ›  专栏  ›  技术社区  ›  Dev-iL

带预定义指数的指数表示法输出数字

  •  1
  • Dev-iL  · 技术社区  · 6 年前

    我有一组整数值,例如:

    V = [26767559, 6022443, 9923637]; % etc.
    

    对于我的应用程序,将它们表示为 <rounded_mantissa>E5 (也就是说, 有价值的 *10个 5个 ,因此对于上面的示例,我想得到:

    N = ["268E5", "60E5", "99E5"]; % I won't mind if it's E+05
    

    目前,我正在使用几种可行的解决方法之一来实现这个输出,

    N = round(V*1E-5) + "E5";
    

    但我想知道是否可以指定 formatSpec 属于 sprintf 我是说, num2str (等)这样它就可以输出具有特定指数值的数字(在这种情况下, 5 ,不执行分区(如 num2str(round(V/1E5).','%3uE5') )中。

    我在用R2018a。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Wolfie Radu Stefan    6 年前

    您至少可以删除 round ,那么我不认为有任何进一步的短手,因为它只是一个单一的部门…

    N = num2str( V/1e5, '%.0fE5' )
    

    这个 .0 无论如何,precision运算符将强制您进行0位小数舍入。

    您只能指定 数字 (小数点后或有效)使用 formatSpec 属性,所以除非您有固定的数字(而您没有固定的数字),否则您将无法单独使用它。