2012-05-08 64 views
1

我在for循環中有一個圖,我需要使用圖例命令來標記它們。我需要創建一個字符串數組來使用相同的。由於某種原因,它似乎不起作用。有人可以幫忙嗎?我正在粘貼下面的代碼。在MATLAB中使用圖例

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 
+0

'傳說(str_array)'也許應該去兩個'for'環路以外。嘗試在末尾打印'str_array' - 看它是否包含你期望的字符串。 – Richante

+0

不,它不會..問題在於串聯字符串。 –

+0

當我初始化str_array爲str_array = [];它在變量空間中存儲爲一個不同的變量,並且正在創建一個字符串的新變量,而不是將str值連接到已在我之前初始化的現有str_array上 –

回答

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{:}) 
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')