Round double value to 2 decimal
Mostrar comentarios más antiguos
Hi all,
I'm trying to round an array of double values to 2 decimals.
This is my code:
for k=1:n,
y(k)=k*st;
y(k)= sprintf('%0.2f', y(k));
x(k) = sqrt(d^2+(2*y(k))^2)-d;
x(k)= sprintf('%0.2f', x(k));
end
I got the following error message:
In an assignment A(I) = B, the number of elements in B and I must be the same.
BTW! the value n is 10.
I want the arrays y and x with 2 decimal values. Ex: 1.23
Thanks a lot.
Raúl. In an assignment A(I) = B, the number of elements in B and I must be the same.
4 comentarios
the cyclist
el 21 de Mzo. de 2013
What is the size of your variable d? If it is a matrix, then it looks like the line
x(k) = sqrt(d^2+(2*y(k))^2)-d;
is trying to assign a matrix into a single element, and that will give the error you see.
Raúl
el 21 de Mzo. de 2013
Walter Roberson
el 22 de Mzo. de 2013
Are you trying to change how the number is displayed, or to assign a new value that is the old one rounded to 2 decimal digits?
Raúl
el 25 de Mzo. de 2013
Respuesta aceptada
Más respuestas (1)
How about this:
a = rand(1,10);
y ={};
n=length(a);
for k = 1:n
y{k} = sprintf('%0.2f',a(k));
end
Because sprintf returns a string, you need to put it in a cell: {}.
You could also round a like this (if you do not want strings):
a = rand(1,10);
y = round(a * 100)/100; % two decimals remain; more decimals are set to 0.
1 comentario
Raúl
el 21 de Mzo. de 2013
Editada: Walter Roberson
el 22 de Mzo. de 2013
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!