Rectangular Function implementation in Matlab

 채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2013년 3월 20일
편집: Azzi Abdelmalek 2013년 3월 20일

4 개 추천

rect=@(x,a) ones(1,numel(x)).*(abs(x)<a/2) % a is the width of the pulse
x=-10:0.001:10
y=rect(x,2)
plot(x,y)

댓글 수: 6

Thank you very much.
also do you know, if rect function is related to the rectwin (rectangular window) function present in matlab?
I am not sure to understand your question, the above rect function is not related to rectwin.
Got it, thankyou.
alternatively, can I use rectpulse command available in matlab to do what you have done?
Azzi Abdelmalek
Azzi Abdelmalek 2013년 3월 25일
편집: Azzi Abdelmalek 2013년 3월 25일
You can adapt square function
can someone please tell me how can i use a rectangular function or any function to visualize outliers in my data? i find the outliers in my data but i dnt know how to visualize them using a graph or plot.
rectangular function do require symbolic toolbox

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Johan Rincon Botia
Johan Rincon Botia 2022년 4월 16일

2 개 추천

I did the implementation for rect function with period w
My function has 4 arguments rect (T,n,amp,xtranslation), where T is the period, n is the periods that you want to show, amp is the amplitude and xtranslation is the translation at x-axis, for example, i want to do this signal:
with any period, like T = 20s, and i wanna show this 3 times,
This is how i use the function
T = 20; %Period
amplitude = 5; %Amplitude of the signal
num = 3; %Numbers of periods that you want to show
xtranslation =-8; % Translation x-axis
[t,y] = rect(T,num,amplitude,xtranslation); %the function return the time vector and amplitud vector
plot(t,y)%use t and y to plot your rect signal
An here is the implementation of the function:
function [t,y] = rect(T_period,num,ampli,xtranslation)
t = -T_period*num:0.01:T_period*num;
y_0=0;
y_1=1;
if xtranslation>=T_period/2
num = num+round((2*xtranslation/T_period))
end
for i=-num:num
y_0=y_0 + 0.*(t>T_period/2+(T_period*(i-1)) & t<T_period*num);
y_1=y_1 + 1.*(t>T_period*(i-1) & t<T_period/2+(T_period*(i-1)));
end
y= (y_0 + y_1)
y = ampli*(y-min(y));
t = t-xtranslation;
end
And this is the result, i hope that this will be useful for you!
balakrishna nair nalivalapil
balakrishna nair nalivalapil 2019년 2월 5일

0 개 추천

rect=@(x,a) ones(1,numel(x)).*(abs(x)<a/2) % a is the width of the pulse
x=-10:0.001:10
y=rect(x,2)
plot(x,y)

댓글 수: 1

excuse me ,could i ask y u a question?how can i use rect(x,y) in matlab?

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Mathematics에 대해 자세히 알아보기

제품

질문:

2013년 3월 20일

댓글:

2022년 11월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by