在Matlab中添加一个矢量作为图例

时间:2015-03-02 13:45:23

标签: matlab matlab-figure

我有一个矢量,其条目我想成为我的情节图的标题。我怎么做?我知道我只能在一个情节中添加一个传奇。

n=[2 4 6 8 10];
legend(int2str(n));

它应该显示为5个不同的传说,名为" 2"," 4" ....," 10"。 我不太熟悉如何将向量n更改为字符串向量。 感谢

1 个答案:

答案 0 :(得分:3)

简单直观的(在我看来)可以创建与sprintf向量的每个元素对应的字符串。在我的例子中,我使用for循环生成曲线,但如果曲线是在其他地方生成的,那么这个想法也是一样的。您可以根据需要自定义文本。代码基于与n中的元素一样多的曲线。

示例:

clear
clc

x = 1:10;

y = rand(1,10);
n=[2 4 6 8 10];

%// Initialize the cell containing the text. For each "n" there is a cell.
LegendString = cell(1,numel(n));

%// Plot every curve and create the corresponding legend text in the loop.
hold all
for k = 1:numel(n)

    plot(x,n(k)*y)
    LegendString{k} = sprintf('n = %i',n(k));
end

%// Display the legend
legend(LegendString)

输出:

enter image description here

希望这就是你的意思。

对于单行,您可以将arrayfunnum2str一起使用(感谢@Divakar提供的建议):

arrayfun(@(n) ['n = ',num2str(n)],n,'Uni',0)

这提供了一个可以在legend的调用中直接使用的单元格数组。