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

NAA*_*ASI 3 format matlab legend matlab-figure

我正在寻找一种方法来强制特定格式的图例条目.我按照代码,显示它们

在此输入图像描述

相反,我想要它像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')
Run Code Online (Sandbox Code Playgroud)

Sue*_*ver 5

你应该指定你想用科学记数法,当您转换sig通过传递一个字符串自定义格式说明,以num2str

legend(strcat('\sigma^2_n=',num2str(sig.', '%.0e')));
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

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

在此输入图像描述