2013-05-08 3 views
7

Matlab에서 (예 : fprintf('%10.5e\n', pi/100))을 사용하여 인쇄 할 경우 결과는 3.14159e-02이됩니다. 그러나 숫자에 0.314159e-1과 같은 선행 제로가 필요하면 어떻게해야합니까? Matlab에서 어떻게 관리 할 수 ​​있습니까?Matlab의 과학 표기법에서 0을 앞두고

내가 묻는 이유는 내가 앞에 오는 0을 가져야하는 파일로 인쇄하려고한다는 것입니다. 그렇지 않으면, 나는 상관하지 않을 것이다.

감사합니다.

답변

3

을 어떤 영리한 방법이 해라 :

your_number = pi; 
['0.' strrep(sprintf('%10.5e',your_number*10), '.', '')] 

>> ans = 

0.314159e+01 
1

내 솔루션은 매우 미숙하지만이 내용은 설명하기위한 것입니다. 당신은 수의 관련 문자열을 찾습니다 작은 기능을 스스로 할 트림을 e 후, 예를 들어, 마지막에 1하여 지수를 시작하고 또한 증가에 0.을 추가 할 수 있습니다

function b=fooo(a) 
b=a; 
k1 = strfind(a, '.'); 
k2 = strfind(a, 'e-'); 
suffix=num2str(str2num(b(k2+1:k2+3))+1); 
b(k2+1:end)=[]; 
b(k1)=[]; 
b=['0.' b suffix]; 

ans=fooo(sprintf('%10.5e\n', pi/100)) 

같은 입력이 답변을 얻을 것입니다 여기서 나는 생각하지 않는다

ans = 
    0.314159e-1