Matlab 直方图图例中的多行

Matlab 直方图图例中的多行,matlab,histogram,legend,Matlab,Histogram,Legend,我试图用一个由两行组成的图例绘制一个直方图。 运行以下代码会导致错误: 使用matlab.graphics.chart.primitive.Histogram/set时出错 值单元格数组句柄维度必须与句柄向量长度匹配 我还直接用histogram命令尝试了DisplayName属性,但这也不起作用。根据需要,单元数组的维数也必须与错误声明的句柄数相匹配 我想添加另一个仍然有相同错误的句柄 h = [h; histogram(xErr, 100, 'Normalization','pdf')];

我试图用一个由两行组成的图例绘制一个直方图。 运行以下代码会导致错误:

使用matlab.graphics.chart.primitive.Histogram/set时出错

值单元格数组句柄维度必须与句柄向量长度匹配

我还直接用histogram命令尝试了DisplayName属性,但这也不起作用。根据需要,单元数组的维数也必须与错误声明的句柄数相匹配

我想添加另一个仍然有相同错误的句柄

h = [h; histogram(xErr, 100, 'Normalization','pdf')];
有没有一种简单的方法可以在一个历史文法的传说中获得两行文字

我正在使用Matlab R2016b

根据,需要在文本中插入换行符,\n这可以通过轻松完成。一个小但重要的复杂问题是需要转义标准的LaTeX活动字符\因此sprintf不认为LaTeX命令是其特殊字符之一。一些变量名已更改,以确保代码运行:

xErr = randn(1,1000);
[mu, sig] = normfit(xErr);
h = histogram(xErr, 100, 'Normalization','pdf');
set(h,...
   'DisplayName',...
   sprintf([...
       'Standard deviation $\\sigma_{x} = $ ', num2str(sig),...
       '\nMean $\\mu_x = $ ', num2str(mu)]));
hl = legend('Location', 'NorthWest');
set(hl,'Interpreter','latex');
我个人会用

xErr = randn(1,1000);
[mu, sig] = normfit(xErr);
histogram(xErr, 100, 'Normalization','pdf');
legText = {...
    sprintf([...
        'Standard deviation $\\sigma_{x} = %9.7f$  \n ',...
        'Mean               $\\mu_x      = %9.7f$'    ],...
        [sig,mu])...
    };
legend(legText,'Location', 'NorthWest','Interpreter','latex'); 
但这只是美学

xErr = randn(1,1000);
[mu, sig] = normfit(xErr);
histogram(xErr, 100, 'Normalization','pdf');
legText = {...
    sprintf([...
        'Standard deviation $\\sigma_{x} = %9.7f$  \n ',...
        'Mean               $\\mu_x      = %9.7f$'    ],...
        [sig,mu])...
    };
legend(legText,'Location', 'NorthWest','Interpreter','latex');