Matlab 以具有预定义指数的指数表示法输出数字

Matlab 以具有预定义指数的指数表示法输出数字,matlab,printf,exponential,notation,format-specifiers,Matlab,Printf,Exponential,Notation,Format Specifiers,我有一组整数值,例如: V = [26767559, 6022443, 9923637]; % etc. 对于我的应用程序,可以方便地将它们表示为E5(即一些值*105),因此对于上面的示例,我希望得到: N = ["268E5", "60E5", "99E5"]; % I won't mind if it's E+05 目前,我正在使用几种可行的解决方法之一来实现这一输出 N = round(V*1E-5) + "E5"; 但是我想知道是否可以指定sprintf,num2str(等等)的

我有一组整数值,例如:

V = [26767559, 6022443, 9923637]; % etc.
对于我的应用程序,可以方便地将它们表示为
E5
(即一些值*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
属性指定位数(有效位数或小数点后),因此除非您有固定位数(您没有),否则无法单独使用。

感谢代码高尔夫提示:)因为您无可争议的最后一段而接受。