Matlab 在特定时间绘制垂直线
我想在某个“x”(标量)值处绘制一条线,因此每秒都会绘制一条具有特定值的垂直线。我知道绘制垂直线的一种方法(不考虑时间)是声明一个向量,如: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是大小相同的矩阵,则直线绘制一条直线 每列 你想打多少
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