How to check if an integer is above or below 0.5 continuously ?
조회 수: 2 (최근 30일)
이전 댓글 표시
Hello everyone.
I have a periodic signal where I try to condition the signal's behavior to be zero in certain parts.
What I'm trying to do exactly is this:
The period of the signal is T.
I want the signal to have some value when 0<time<T/2 and I want signal to have a value of zero when T/2 <= time < T. But I want to do this continuously until the time stops. So for example signal should have a value of zero when 3T/2 <= time < 2T as well.
To put it in words, I want to make a periodic wave's second half equal to zero in every cycle.
How may I do this ?
If it is hard to understand with text:
Red parts should be zero.
댓글 수: 0
채택된 답변
Dyuman Joshi
2022년 12월 8일
편집: Dyuman Joshi
2022년 12월 8일
If you have numeric data, you can do something like this -
x=0:0.01:3;
y=abs(sin(pi*x));
%original plot
plot(x,y,'k-')
hold on
%modified plot
y(ceil(x)==round(x))=0;
plot(x,y,'b.')
Note - use a tolerance based method rather than == for floating point numeric values
%for example
y(abs(ceil(x)-round(x))<1e-4)=0
댓글 수: 3
Dyuman Joshi
2022년 12월 8일
편집: Dyuman Joshi
2022년 12월 8일
change ceil to floor
x=0:0.01:3;
y=abs(sin(pi*x));
%original plot
plot(x,y,'k-')
hold on
%modified plot
y(abs(floor(x)-round(x))<1e-4)=0;
plot(x,y,'b.')
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!