How to format numbers in exponential notation with base 1e3
    14 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Julian Schäfer
 el 6 de Oct. de 2020
  
    
    
    
    
    Respondida: Star Strider
      
      
 el 6 de Oct. de 2020
            Hi,
I want to format numbers to a exponential notation with the base 1e3.
For example I have a vector a:
a = [25.12; 67.29; 120.00; 256.65; 501.58; 1366.26];
All numbers should have the same 5 digits with a precision of 4 in exponential notation with the base 1e3. So the output should be:
b = 1e3 * [0.0251 0.0673 0.1200 0.2567 0.5016 1.3663];
Does anybody know how to do this?
Thanks!
0 comentarios
Respuesta aceptada
  Star Strider
      
      
 el 6 de Oct. de 2020
        This will correctly calculate tha mantissas: 
rfxm = @(x,xpnt) [sign(x).*10.^(log10(abs(x))-xpnt)];                   % Anonymous Function Creating Reformatted Number
so: 
a = [25.12; 67.29; 120.00; 256.65; 501.58; 1366.26];
xpnt = +3; 
Out = rfxm(a,xpnt)
produces: 
Out =
    0.0251
    0.0673
    0.1200
    0.2567
    0.5016
    1.3663
This is as close as I can get to your desired output: 
    Out = [sprintf('1e%d * [',xpnt) sprintf('%.4f\t',  rfxm(a.',xpnt)) ']']
.
0 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Logical en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

