簡體   English   中英

在 MATLAB 中繪制分段 function

[英]Plotting a piecewise function in MATLAB

我一直在嘗試 plot 分段 function:

y(t)=a*sin(2*pi *f *t) 對於 0 < t <= 1/(2f)

y(t)=0 對於 1/(2f) < t < 1/f

范圍從 t=0 到 t=3。

任何人都可以在不使用“分段”命令的情況下幫助我 plot 而是使用 for 循環和 if 語句創建 function 嗎?

在 matlab 中,通常通過計算離散網格中的 x/y 值來繪制繪圖。

f=2;
a=1;
t=0:0.01:3;
y=zeros(size(t));
y(t<=1/(2*f))=a*sin(2*pi*f*t(t<=1/2/f));
plot(t,y)

創建這種分段 function 的另一種方法是創建專用 function 或匿名 function 來實時計算。 例如

y=@(t,f,a) (t<=1/(2*f) & t>=0).*sin(2*pi*f*t)*a;
plot(t,y(t,f,a))

我正在嘗試這樣的事情:

function [速率] = y(a,f,t)
對於 t = (0:3)
如果 t <= (1 / (2 * f))
率 = a * sin(2 * pi * f * t);
別的
率 = 0;
結尾
結尾
結尾

然后調用: plot (t, y(a,f,t)) 到 plot 圖表。 如果我錯了,你能糾正我嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM