# How to define and plot a function with input range?

3 ビュー (過去 30 日間)
Zheng Wang 2021 年 10 月 24 日
コメント済み: Zheng Wang 2021 年 10 月 24 日
Hi,
I have a function: I need to plot it: y(t) = 2f(t-1) + 4f(t-2) + 3(ft-3) + f(t-4)
I could imagine what y(t) looks like but couldn't make the MATLAB code working after a lot of tries. I have:
pt = @(t) (1 ./ (1 + t .^ 2));
But I don't know how to specify the range of t (0.5 >= t >= -0.5).
I also tried piecewise():
pt = @(t) piecewise(0.5 >= t >= -0.5, (1 + t .^ 2) .^ (-1), t > 0.5, 0, t < 0.5, 0);
x = 0:0.01:10;
plot(x, pt(x));
xlim([-1 10]);
But it reported error: Undefined function 'piecewise' for input arguments of type 'double'.

サインインしてコメントする。

### 採用された回答

Alan Stevens 2021 年 10 月 24 日
Like so:
pt = @(t) (1 ./ (1 + t .^ 2)).*(t>=-0.5).*(t<=0.5);
x = 0:0.01:10;
y = 2*pt(x-1) + 4*pt(x-2) + 3*pt(x-3) + pt(x-4);
plot(x, y);
xlim([-1 10]); ##### 1 件のコメント表示非表示 なし
Zheng Wang 2021 年 10 月 24 日
pt = @(t) (1 ./ (1 + t .^ 2)).*(t>=-0.5).*(t<=0.5); does the trick!
Thanks very much!!

サインインしてコメントする。

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!