Matlab 在特定时间绘制垂直线

Matlab 在特定时间绘制垂直线,matlab,plot,Matlab,Plot,我想在某个“x”(标量)值处绘制一条线,因此每秒都会绘制一条具有特定值的垂直线。我知道绘制垂直线的一种方法(不考虑时间)是声明一个向量,如: y=0:0.01:5; 或者类似于: y=3:0.01:6; 并写出图(x,y) 此外,我还使用“暂停”参数进行了“动画”绘图,但我不知道在这种情况下如何进行。谢谢您的帮助。在Matlab中有几种绘制垂直线的方法。最简单的建议是行功能: 行(X,Y)将向量X和Y中定义的行添加到当前 斧头。如果X和Y是大小相同的矩阵,则直线绘制一条直线 每列 你想打多少

我想在某个“x”(标量)值处绘制一条线,因此每秒都会绘制一条具有特定值的垂直线。我知道绘制垂直线的一种方法(不考虑时间)是声明一个向量,如:

y=0:0.01:5;
或者类似于:

y=3:0.01:6;
并写出
图(x,y)


此外,我还使用“暂停”参数进行了“动画”绘图,但我不知道在这种情况下如何进行。谢谢您的帮助。

在Matlab中有几种绘制垂直线的方法。最简单的建议是
功能:

行(X,Y)将向量X和Y中定义的行添加到当前 斧头。如果X和Y是大小相同的矩阵,则直线绘制一条直线 每列

你想打多少次就打多少次

  h=line(X,Y)
将为您提供该行的属性

另一种方法是

X= X0*(Y./Y)
然后


将在点X0处绘制一条垂直线。您可以做的另一件事是使用上述
line
函数从点
(X0,min(Y))
到点
(X0,max(Y))
绘制一条线,这是最优雅的解决方案。如果试图创建电影,则需要使用
h=line(X,Y)
访问此行的属性。要将该行移动到新位置,必须通过调用
set(h,Property,value)
来设置此行的属性。例如,在电影中,需要将其移动到新位置,以便设置该属性。这样,通过对数据的最小更改,您可以移动一条线或显示其加速度

我可以建议的另一种方法是将
绘图
按住
结合使用。使用
plot
,您只需指定两个点,其中每个点具有相同的
x
值,但
y
值可以更改为您想要的任何值。使用
plot
绘制点时,默认行为是在点之间绘制一条线。如果我们指定两个点具有相同的
x
坐标,但不同的
y
坐标,我们将在这些点之间绘制一条垂直线

例如,假设你想让每一秒都有一条垂直线,我们可以这样做:

ystart = [-1 -2 -3 -1 -2 -3];
yend = [1 2 3 1 2 3];

figure; hold on;
for idx = 1 : numel(ystart)
    plot([idx idx], [ystart(idx) yend(idx)]);
end
这就是我们得到的:

我们定义了两个包含6个元素的数组,其中
ystart
表示起始
y
点,
yend
表示结束
y
点。我们生成一个新图形,使用
按住
在同一个图形上绘制多条线,然后使用
for
循环
绘图
,以便在两点之间绘制一条线:
(x,y)=(idx,ystart(idx))
(x,y)=(idx,yend(idx))
<代码>idx从1变为6。显然,您可以通过指定另一个数组来更改绘制
x
值的位置。。。称之为
x

x = 0:2:10; %// Time values
ystart = [-1 -2 -3 -1 -2 -3];
yend = [1 2 3 1 2 3];

figure; hold on;
for idx = 1 : numel(ystart)
    plot([x(idx) x(idx)], [ystart(idx) yend(idx)]);
end

在这里,我们将按照第2步从
x=0
x=10
绘制垂直线。结果基本上是一样的,但是
x
值会不同,垂直线的绘制位置也会不同。

好的,我试试看。谢谢,一定要告诉我。如果行得通,我不介意你接受我的回答。祝你好运在循环中添加“暂停(1)”这一行使它按我所希望的那样工作。谢谢,我当然会的。x是什么?我怎样才能复制您的示例以使其正常工作?
x = 0:2:10; %// Time values
ystart = [-1 -2 -3 -1 -2 -3];
yend = [1 2 3 1 2 3];

figure; hold on;
for idx = 1 : numel(ystart)
    plot([x(idx) x(idx)], [ystart(idx) yend(idx)]);
end