2010-11-18 3 views
2

Matlab에서 명령 창에 표시 할 소수점 수를 제어하는 ​​방법은 무엇입니까? 예를 들어 특정 숫자의 십진수 표시 방법

,

>> X = 0.4654

x가 각각 0.5, 0.47와 같은 변수 x의 값이 0.465를 표시하는 방법

0.4654 

명령 창?

감사합니다.

+2

가능한 중복 [가능 매트랩 명시 출력 번호를 포맷인가요? (http://stackoverflow.com/questions/1759982/is-it-possible-in-matlab-to-explicitly- format-the-output-numbers) – mtrw

+0

mtwr이 말했듯이 귀하의 질문은 아마도 위의 게시물에 답변되어있을 것입니다. num2str을 사용하십시오. –

답변

4

나는 임의의 장소에 반올림 거기에 내장되어 생각하지 않는다, 그러나 당신은 라운드 장소의/10^번호 (장소의 X * 10^번호)를 수행하여 둥근 결과를 얻을 수 있습니다. 이것은 당신이 그 제거하려는 경우 당신은 당신이 수행하여 원하는 결과를 얻을 수 귀하의 경우 있도록 도로 sprintf와 같은 특별한 형식의 인쇄를해야 후행 제로로 출력합니다 :

sprintf('%.1f', round(x*10)/10) 
sprintf('%.2f', round(x*100)/100) 
sprintf('%.3f', round(x*1000)/1000) 

도움이 되었길 바래요!

편집 : 당신이 행렬을 위해 그것을하고 싶은 경우에, 나는 더 나은 방법이 있는지 확실하지 않습니다하지만 당신 수 행렬로 지정된 x 행을 통해 단지 루프 :

for i=1:length(x(:,1)), 
disp(sprintf('%.2f\t', round(x(i,:)*100)/100)) 
end 
+0

감사합니다. 그것은 작동합니다! 하지만 x가 매트릭스인지 궁금 해서요. 귀하의 회신에있는 방법은 하나의 단일 행에있는 모든 행을 표시합니다, 그러나 나는 명령 창에서 매트릭스를 표시하는 것과 비슷한 다른 행에 다른 행을 바란다. – Tim

+0

안녕하세요, Tim, 제대로 수행하는 방법을 잘 모르겠지만 행을 반복하여 표시 할 수 있습니다. 포함 할 대답을 편집했습니다. – ameer

2

당신은 통제권이 명령 창에서 format 명령을 사용하십시오. 특정 옵션을 제공하는 doc format을 살펴 보시기 바랍니다.

더 정밀도를 필요로하는 경우, 오프 disp를 사용하여 더 나은, 그리고/또는 라운딩 기능과 같은 것 : z = round(x/y)*y

0

변경 형식입니다.

format shortG 
관련 문제