以带有预定义指数的指数表示法输出数字
Output numbers in exponential notation with a predefined exponent
我有一组整数值,例如:
V = [26767559, 6022443, 9923637]; % etc.
对于我的应用,将它们表示为<rounded_mantissa>E5
很方便(即some_val*105), 所以对于上面的例子我想得到:
N = ["268E5", "60E5", "99E5"]; % I won't mind if it's E+05
目前,我正在使用几种可能的解决方法之一来实现此输出,
N = round(V*1E-5) + "E5";
但我想知道是否可以指定 sprintf
、num2str
等的 formatSpec
,以便输出具有特定值的数字指数(在本例中为 5
),不执行除法(如 num2str(round(V/1E5).','%3uE5')
)。
我正在使用 R2018a。
你至少可以删除round
的使用,然后我认为没有任何进一步的简写,因为它只是一个除法...
N = num2str( V/1e5, '%.0fE5' )
无论如何,.0
精度运算符都会强制将小数点后 0 位四舍五入。
您只能使用 formatSpec
属性 指定 位数 (有效或小数点后),所以除非您有固定数量的数字(你没有)你将无法单独使用它。
我有一组整数值,例如:
V = [26767559, 6022443, 9923637]; % etc.
对于我的应用,将它们表示为<rounded_mantissa>E5
很方便(即some_val*105), 所以对于上面的例子我想得到:
N = ["268E5", "60E5", "99E5"]; % I won't mind if it's E+05
目前,我正在使用几种可能的解决方法之一来实现此输出,
N = round(V*1E-5) + "E5";
但我想知道是否可以指定 sprintf
、num2str
等的 formatSpec
,以便输出具有特定值的数字指数(在本例中为 5
),不执行除法(如 num2str(round(V/1E5).','%3uE5')
)。
我正在使用 R2018a。
你至少可以删除round
的使用,然后我认为没有任何进一步的简写,因为它只是一个除法...
N = num2str( V/1e5, '%.0fE5' )
无论如何,.0
精度运算符都会强制将小数点后 0 位四舍五入。
您只能使用 formatSpec
属性 指定 位数 (有效或小数点后),所以除非您有固定数量的数字(你没有)你将无法单独使用它。