Create a long rectangular signal with a function handle

1 回表示 (過去 30 日間)
AEW
AEW 2022 年 4 月 20 日
編集済み: AEW 2022 年 4 月 20 日
I was wondering if there is a quick way to create a rectangular signal during 20 sec for example, with a function handle. I tried the following command which requires you to do it for every step.
Thanks.
u=@(t) double((0<=t & t<0.5) + ...
(1<=t & t<1.5) + ...
(2<=t & t<2.5)) .* 1;

採用された回答

Bruno Luong
Bruno Luong 2022 年 4 月 20 日
編集済み: Bruno Luong 2022 年 4 月 20 日
myfun = @(t) mod(t,1)<=0.5;
ezplot(myfun, 0, 20)
  4 件のコメント
Bruno Luong
Bruno Luong 2022 年 4 月 20 日
fun=@(x) ppval(mkpp(0:0.25:1,[1; 0; -1; 0]),mod(x,1))
fun = function_handle with value:
@(x)ppval(mkpp(0:0.25:1,[1;0;-1;0]),mod(x,1))
ezplot(fun,0,3)
AEW
AEW 2022 年 4 月 20 日
Thanks a lot!

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

その他の回答 (1 件)

Sam Chak
Sam Chak 2022 年 4 月 20 日
Second opinion!
fcn = @(t) (sign(sin(2*pi*t)) + 1)/2;
ezplot(fcn, 0, 5)

カテゴリ

Help Center および File ExchangeSmoothing and Denoising についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by