# Create a top hat function

39 views (last 30 days)
Jason on 28 Jun 2021
Commented: Jason on 28 Jun 2021
Hello, Im trying to create a top hat function (that is 0 everywhere except between -halfpix & halfpix). the fucll width of the top hat (2* halfpix) is symetrical about the yaxis.
i've created it based in discrete values as below but I would like it as a general function.
x = -20:0.1:20;
t = zeros(1,length(x))
t(x>=-halfpix & x<halfpix) = 1;
##### 0 CommentsShow -2 older commentsHide -2 older comments

Sign in to comment.

### Accepted Answer

Rik on 28 Jun 2021
If you realize that you are marking all true locations with 1 and leaving all false as 0, you can use that to make an anonymous function that only casts you logical statement to double.
##### 5 CommentsShow 3 older commentsHide 3 older comments
Rik on 28 Jun 2021
You already know how to do that. You already used the code in your own question:
t=@(x) double(x>=-halfpix & x<halfpix)
Jason on 28 Jun 2021
Perfect, thankyou

Sign in to comment.

### Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

R2021a

### Community Treasure Hunt

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

Start Hunting!