2017-03-28 10 views
3

범례 항목을 특정 형식으로 강제 변환하는 방법을 찾고 있습니다. 내가 코드 다음, 그들은 대신 내가 1E-1,1e-2,1e-3,1e-4처럼 원하는 MATLAB에서 범례의 표시 형식을 변경하는 방법

enter image description here

같이 표시됩니다 1E-5. 이렇게하는 방법이 있습니까?

MWE :

sig=[0.1 0.01 0.001 0.0001 0.00001]; 
for j=1:length(sig) 
    for x=1:10 
     Cost(j,x) = 2*x+j; 
    end 
plot(1:10,Cost(j,:)); 
end 
legend(strcat('\sigma^2_n=',num2str((sig)'))); 
set(h,'Interpreter','latex') 

답변

5
당신은 당신이 custom format specifier num2str

legend(strcat('\sigma^2_n=',num2str(sig.', '%.0e'))); 

enter image description here

를 전달하여 문자열로 sig를 변환 할 때 당신이 과학적 표기법을 사용하고 싶습니다 지정해야

앞뒤를 제거하려는 경우 0 지수에서, 당신은 정규 표현식

S = regexprep(cellstr(num2str(sig.', '%.0e')), '(?<=e[-+])0*', ''); 
legend(strcat('\sigma^2_n=', S)) 

enter image description here

+0

니스 추가로 제거 할 수 있습니다. 고맙습니다 – NAASI