如何使用从矩阵派生的标签标记图形系列?

时间:2014-06-20 01:58:46

标签: octave

我有很多系列剧情。我想用矩阵来生成系列标签或图例。

例如。如果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'))

1 个答案:

答案 0 :(得分:0)

您可以获取sprintf返回的字符串,并使用逗号作为分隔符进行字符串拆分

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

这给出的唯一烦恼是warning: legend: ignoring extra labels,因为你在最后一个逗号后面有一个空字符串,但这可以通过不传递最后一个值来修复

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