1

for ループにプロットがあり、凡例コマンドを使用してラベルを付ける必要があります。同じものを使用するには、文字列の配列を作成する必要があります。何らかの理由で、うまくいかないようです。誰か助けてくれませんか。以下にコードを貼り付けます。

   for i = 1:len
   for j = 1:C{i,1}/n
    cc = hsv(12);
    semilogx(w/pi,Same_psd{i,1}(:,j+1),'color',cc(j+1,:))
    str = num2str(Same_mean{i,j+1});
    srt_array = [str_array; str];
    legend(str_array);
   end 
   end
4

2 に答える 2

4

これを試して:

legend_labels = cell(10,1);

for i = 1:10

    h(i) = plot(randn(10,1));
    hold all
    legend_labels{i} = sprintf('This is label #%i', i);

end;

legend(h,legend_labels{:})
于 2012-05-08T13:29:35.300 に答える
1

DisplayName プロパティを使用してみてください。凡例があなたのラインと同期していることを保証できるという素晴らしい副作用があります.

例えば:

clf
hold on
for i = 1:10
    col = rand(3,1);
    semilogx(1:10,rand(10,1),'DisplayName',sprintf('This is curve %i',i),...
    'color',col)
end 
legend('Location','best')
于 2012-05-08T14:26:42.247 に答える