我试图在给定图中显示给定向量的值。我的代码是:在MatLab图中显示标记值
x = [0.1 0.2 -0.1 4.1 -2 1.5 -0.1];
plot(x)
a = num2str(x(:));
b = cellstr(a);
c = strtrim(b);
text(x,y,c);
它绘制了值,但它们散布在整个地方,并没有很好地坐在图形上的每个点旁边。
我试图在给定图中显示给定向量的值。我的代码是:在MatLab图中显示标记值
x = [0.1 0.2 -0.1 4.1 -2 1.5 -0.1];
plot(x)
a = num2str(x(:));
b = cellstr(a);
c = strtrim(b);
text(x,y,c);
它绘制了值,但它们散布在整个地方,并没有很好地坐在图形上的每个点旁边。
正如我在上面的评论中所说的,使用单个向量输入调用plot
将向量的值视为y坐标,将它们的索引作为x坐标。您提供的x
矢量包含负数,但您的plot
调用只有一个矢量输入,因此图中将没有负x坐标(在MATLAB中没有负指数)。
假设你x
向量所需y坐标,下面的例子将提供我猜你期望的行为:
y = [0.1 0.2 -0.1 4.1 -2 1.5 -0.1];
x = 1:1:length(y);
plot(x,y)
a = num2str(x(:));
b = cellstr(a);
c = strtrim(b);
h = text(x,y,c);
哪里h
为对象的数组处理,您可以使用用get
和set
来查询和修改每个单独文本对象的properties(如大小,对齐等)。
谢谢,本来会建议回答,所以我可以接受。现在好了:-) – user1574598 2014-09-05 21:36:38
你不应该在y上调用num2str吗? – ensignr 2017-11-14 02:52:03
如果您执行了'plot(x)',您的x坐标将成为您的数组的索引,并且您的y坐标将成为该索引处'x'的值。正如所写的那样,如果图中没有任何内容(不存在负值索引),则告诉MATLAB将文本置于负x值。 – excaza 2014-09-05 13:59:46
那么,你真的试图运行代码?我可以告诉你,由于'y'没有被定义,所以代码没有运行。试着定义'x'和'y',如果文本仍然没有放在正确的位置,所以回来。 – patrik 2014-09-05 14:07:36
所以,我需要创建一个向量'x'轴,值为'1'到'7',然后创建上面的向量为'y',然后'plot(x,y)',然后运行'text '功能? – user1574598 2014-09-05 14:35:50