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

发布于 2024-12-02 23:38:00 字数 492 浏览 2 评论 0原文

当我尝试为 for 循环图创建图例时,我需要您的帮助来解决我遇到的问题。我使用的代码如下,

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

texdata 是一个 1x14 单元格,其中存储了我想要使用的图例的名称。 当我运行脚本时,我得到了绘图,但我收到的不是图例,而是错误消息“???索引超出矩阵尺寸。”

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

>> whos textdata
  Name          Size            Bytes  Class    Attributes

  textdata      1x14             1652  cell               

I need your help to solve a problem i am facing when i am trying to create a legend to a for loop plot. The code i am using is the following

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

texdata is a 1x14 cell where they are stored the names of the legends i want to use.
When i am running my script, i get the plot but instead of legend i am getting this error message "??? Index exceeds matrix dimensions."

edit: i add the whos textdata answer, because i can't write it in a good way on comment answer

>> whos textdata
  Name          Size            Bytes  Class    Attributes

  textdata      1x14             1652  cell               

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑脸一如从前 2024-12-09 23:38:00

使用这段代码对我来说效果很好。文本数据中每个字符串的长度应该无关紧要。

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});

如果错误仅出现在图例添加上,您就知道这是文本数据的问题。尽管我认为您的绘图工作正常?
您确定您的文本数据已正确存储吗?文本数据的维度可能与您想要绘制的数据不同。

尝试运行 whos 就像评论所说:

>> whos textdata
  Name          Size            Bytes  Class    Attributes

  textdata      1x14              868  cell               

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

This worked fine for me using this code. The length of each string in textdata should not matter.

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});

If the error only comes up on the legend addition you know it is a problem with textdata.. Your plot works fine though I assume?
Are you sure your textdata is stored appropriately? It is likely that textdata is, well, of different dimensions than what you are trying to plot.

Try running whos like the comment says:

>> whos textdata
  Name          Size            Bytes  Class    Attributes

  textdata      1x14              868  cell               

edit: comments were updated while I wrote the answer...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文