2014-06-20 67 views
0

我有許多系列圖。我想用一個矩陣來生成系列標籤或圖例。如何使用從矩陣派生的標籤來標記圖形系列?

例如。如果K=[2 4 6],其中K的每個元素對應一個系列,我希望系列標籤是類似"K=2", "K=4" and "K=6"的東西。

這裏是我的代碼:

function Y=Q(X) 
    Y=0.5.*erfc(X./sqrt(2)) 
endfunction 

EbNodB=0:2:20 
EbNo=10.^(EbNodB/10) 
K=[2 4 6] 
M=2.^K 
KM=3*K./(M-1) 
KME=KM'*EbNo 
X=sqrt(KME) 
Pb=((4./K).*(1-1./sqrt(M)))'.*Q(X) 
semilogy(EbNodB,Pb) 
title("M-QAM BER") 
grid on 
grid minor on 
#legend(sprintf("K=%d,",K)) 

此接近 - 只要在每個傳奇的前失蹤"K="

legend(num2str(K')) 

回答

0

你可以採取由sprintf的返回的字符串,做一個字符串拆分以逗號作爲分隔符

legend(strsplit(sprintf("K=%d,",K),",")) 

唯一的煩人CE這給是warning: legend: ignoring extra labels因爲你最後一個逗號後的空字符串,但可以通過不通過的最後一個值

legend(strsplit(sprintf("K=%d,",K),",")(1:end-1)) 
+0

鉭固定。工作正常,但我覺得Octave應該有矩陣字符串操作,以避免這種手動處理。 – philcolbourn

相關問題