如何在MATLAB中更改图例的显示格式

时间:2017-03-28 15:54:33

标签: matlab format matlab-figure legend

我正在寻找一种以特定格式强制传奇条目的方法。我按照代码,显示为

enter image description here

相反,我希望它像1e-1,1e-2,1e-3,1e-4,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')

1 个答案:

答案 0 :(得分:5)

通过将custom format specifier传递给sig

,您应该指定在将num2str转换为字符串时使用科学记数法
legend(strcat('\sigma^2_n=',num2str(sig.', '%.0e')));

enter image description here

如果要删除指数中的前导0,可以使用正则表达式删除它们

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

enter image description here