Rectangular Function implementation in Matlab
110 ビュー (過去 30 日間)
古いコメントを表示
How do I implement this equation?
rect(x)
Thanks
0 件のコメント
採用された回答
Azzi Abdelmalek
2013 年 3 月 20 日
編集済み: Azzi Abdelmalek
2013 年 3 月 20 日
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 件のコメント
Khushi Bhatti
2018 年 9 月 9 日
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.
その他の回答 (2 件)
Johan Rincon Botia
2022 年 4 月 16 日
I did the implementation for rect function with period w
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/966090/image.png)
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/966095/image.png)
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!
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/966100/image.png)
0 件のコメント
balakrishna nair nalivalapil
2019 年 2 月 5 日
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 件のコメント
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!