[英]Animated Discrete Stem Plot
因此,我想創建一個離散時間復指數函數的動畫圖。 最簡單的非動畫圖將由以下給出:
n=-5:40;
x=(exp((3*4j)*n)).*(n>=0);
y=real(x);
subplot(2,1,1);
stem (n,y)
z=imag(x);
subplot(2,1,2);
stem (n,z)
如何設置動畫以顯示給定間隔中考慮的不同樣本數量的函數(假設我有一個由開始秒和結束秒指定的時間間隔,以及一個包含給定間隔中樣本值數量的向量)?
我嘗試了以下方法:
figure,hold on
xlim([min(x(:)) max(x(:))])
ylim([min(y(:)) max(y(:))])
%// Plot point by point
for k = 1:numel(x)
stem (k,y) %// Choose your own marker here
pause(0.001);
end
那不會編譯。 如何實現呢?
簡短答案:
進行以下兩項更改:
①用xlim([min(x(:)) max(x(:))])
xlim([1 numel(x)])
替換xlim([min(x(:)) max(x(:))])
xlim([1 numel(x)])
。
②將stem (k,y)
替換為: stem (k,y(k))
。
詳細答案:
① xlim([min(x(:)) max(x(:))])
是給你以下錯誤:
Error using matlab.graphics.axis.Axes/set
While setting the 'XLim' property of 'Axes':
This is not a valid LimitsWithInfs value. Complex inputs are not supported
該錯誤消息告訴您確切的問題是什么。 您的向量x
包含復數。 具有復數的時間軸也沒有任何含義。
似乎您希望將此行xlim([min(x(:)) max(x(:))])
替換為:
xlim([1 numel(x)])
。
②在循環內部, stem (k,y)
會給您以下錯誤:
Error using stem (line 46)
X must be same length as Y.
該錯誤消息告訴您確切的問題是什么。 這里k
只是一個標量(1x1),而y
是1x46向量。
由於您要逐點繪制y
,因此,將stem (k,y)
替換為: stem (k,y(k))
。
進行上述修復后的輸出:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.