2017-03-28 4 views
3

Ich suche nach einer Möglichkeit, die Legendeneinträge in einem bestimmten Format zu erzwingen. I-Code folgen, werden sie angezeigt wieSo ändern Sie das Anzeigeformat der Legende in MATLAB

enter image description here

Stattdessen möchte ich es wie 1e-1,1e-2,1e-3,1e-4, 1e-5. Gibt es einen Weg, dies zu tun.

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') 

Antwort

5

Sie sollten angeben, dass Sie die wissenschaftliche Notation verwenden möchten, wenn Sie sig in eine Zeichenfolge konvertieren, indem ein custom format specifier zu num2str

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

enter image description here

Wenn Sie die führendeentfernen möchtenim Exponenten, können Sie sie mit einem regulären Ausdruck

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

enter image description here

+0

Netter Zusatz entfernen. Vielen Dank – NAASI