在matlab图中的单元格中设置for循环图中的图例

时间:2011-09-02 16:59:12

标签: matlab plot cell legend

当我尝试为for循环图创建一个图例时,我需要你的帮助来解决我面临的问题。我正在使用的代码如下

for i=3:14
   plot(data(:,i),data(:,2));
   hold all;
end
legend(textdata{1,3:14});

texdata是1x14 cell,其中存储了我想要使用的图例的名称。 当我运行我的脚本时,我得到的情节但不是传说我收到此错误消息“???索引超出矩阵尺寸。”

编辑:我添加whos textdata答案,因为我无法在评论答案中以良好的方式写出来

>> whos textdata
  Name          Size            Bytes  Class    Attributes

  textdata      1x14             1652  cell               

1 个答案:

答案 0 :(得分:0)

使用此代码对我来说很好。 textdata中每个字符串的长度无关紧要。

data = magic(14);
data(2,:) = 1:10:140;
textdata = {'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n'};


for i=3:14
   plot(data(:,i),data(:,2));
   hold all;
end
legend(textdata{1,3:14});

如果错误只出现在图例添加上,你知道它是textdata的问题..虽然我假设你的情节工作正常吗? 您确定您的textdata存储得当吗?很可能textdata的尺寸与你想要绘制的尺寸不同。

尝试运行如评论所说的那样:

>> whos textdata
  Name          Size            Bytes  Class    Attributes

  textdata      1x14              868  cell               

编辑:在我写答案时更新了评论...