我想在某個「x」(標量)值處繪製一條線,因此每秒都會繪製一條具有特定值的垂直線。我知道,畫一條垂直線(不考慮時間)的一種方式是聲明就像一個向量:在特定時間繪製垂直線
y=0:0.01:5;
或類似的東西:
y=3:0.01:6;
,寫plot(x,y);
另外,我已經完成了使用「暫停」參數的「動畫」圖,但在這種情況下我不知道該怎麼做。謝謝你的幫助。
我想在某個「x」(標量)值處繪製一條線,因此每秒都會繪製一條具有特定值的垂直線。我知道,畫一條垂直線(不考慮時間)的一種方式是聲明就像一個向量:在特定時間繪製垂直線
y=0:0.01:5;
或類似的東西:
y=3:0.01:6;
,寫plot(x,y);
另外,我已經完成了使用「暫停」參數的「動畫」圖,但在這種情況下我不知道該怎麼做。謝謝你的幫助。
我建議的另一種方法是將plot
與hold on
組合使用。與plot
,你只能指定兩點,其中每個點具有相同的x
值,但y
值可以更改爲任何你想要的。當您使用plot
繪製點時,默認行爲是在點之間繪製一條線。如果我們指定具有相同座標的兩個點,但座標不同,我們將在這些點之間繪製垂直線。
例如,假設你想擁有每一個「第二」有一條垂直線,我們可以做這樣的事情:
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
。我們產生一個新數字,使用hold on
在同一圖表上繪製多條線,然後使用for
循環與plot
,以便我們在兩點之間繪製一條線:(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
在這裏,我們將汲取x = 0
開始垂直線最多爲x = 10
,步長爲2.結果基本相同,但x
的值將不同,以及垂直線的繪製位置。
好吧,我會試試。謝謝。 – user3587175 2015-02-08 09:57:30
當然,讓我知道。如果它有效,我不介意你接受我的答案。祝你好運! – rayryeng 2015-02-08 10:02:36
在for循環中添加「暫停(1)」行使其按照我的意願工作。謝謝,我確定我會這樣做。 – user3587175 2015-02-08 10:50:00
有幾種方法可以在Matlab中繪製垂直線。最簡單的建議是line
功能:
線(X,Y)將在向量X和Y定義當前 軸線。如果X和Y是相同大小的矩陣,則每行將繪製一行 。
根據需要調用此次數。
h=line(X,Y)
會給你行
另一種方式是性能
X= X0*(Y./Y)
然後
plot(X,Y)
將繪製在點X0垂直線。你可以做的另一件事是使用上面的line
函數從點(X0, min(Y))
到點(X0, max(Y))
畫線,這是最優雅的解決方案。如果您正在嘗試製作電影,則需要使用h=line(X,Y)
訪問此行的屬性。要將該行移動到新的位置,您必須通過調用set(h, Property, value)
來設置該行的屬性。例如在你的電影中,你需要將它移動到新的位置,以便設置該屬性。這樣,通過最小的數據更改,您可以移動一條線或顯示其加速度。
'x'是什麼?我如何複製過去的例子,看看它的工作? – 2017-10-14 01:30:17