MATLAB legend()for循环中的函数 - 在每个循环中添加条目

时间:2015-08-27 20:42:46

标签: matlab

我搜索了很多,但我没有设法创建一个for循环,或类似的东西,以便在每个循环中的图例区域添加额外的条目。 例如:图例中的第1个循环-1条目              传奇中的第二个循环 - 2个条目...... 我已经尝试了legappend函数但是我得到了错误,即使提供了示例。 您可以在下面看到我的代码的一部分:     Eb_N0_dB = [ - 10:25];     k_dB = [ - inf 10 20];     图1)     坚持,稍等     semilogy(Eb_N0_dB,simBer);     图例(sprintf('sim(nTx = 2,nRx = 2 k =%d,Alamouti)',k_dB(1)))     传说封锁     对于qq = 2:长度(k_dB)     legappend(sprintf('sim(nTx = 2,nRx = 2 k =%d,Alamouti)',k_dB(qq)))     结束    %% simBer是{length(k_dB),length(Eb_N0_dB)}矩阵 我收到以下错误     使用图例时出错(第120行)     无效的论点。输入“帮助图例”以获取更多信息。     legappend错误(第74行)     [legend_h,object_h,plot_h,text_strings] = legend(h,allDatah,str); 有什么建议? 问候

1 个答案:

答案 0 :(得分:4)

我创建一个空变量,然后为每个图例条目添加字符串的单元数组元素。在代码中添加图表的位置附加图例条目是一种方便的方式来保持组织有序 - 否则您可能有空白或加倍的图例:

x = 1:4;
figure
hold all

L ='';
%L = cell(1,N);

for j = 1:length(x)

    scatter(j,x(j),60,'filled');
    L = [L,{num2str(j)}];

end

%additional plots are easily added or taken out, leaving the legend in tact:
scatter(rand,rand,90,'x','linewidth',3);
L = [L,'optional data a'];

scatter(rand,rand,90,'x','linewidth',3);
L = [L,'optional data b'];

legend(L);