Clear Filters
Clear Filters

How do I define piecewise constant function in for loop?

6 views (last 30 days)
For example, say I have data points given by
and corresponding output points. Now I want to define a piecewise constant function y such that on its , on , on , on and so on.

Accepted Answer

Torsten on 28 Oct 2023
Edited: Torsten on 28 Oct 2023
Give the correct values to the arrays "left_limit_of_ith_interval" and "right_limit_of_ith_interval" in the following code:
left_limit_of_ith_interval = ...;
right_limit_of_ith_interval = ...;
fun = @(T)0;
for i = 1:M-1
fun = @(T) fun(T) + x(t(i)).*(T>=left_limit_of_ith_interval(i)).*(T<right_limit_of_ith_interval(i));
  1 Comment
Dyuman Joshi
Dyuman Joshi on 28 Oct 2023
Edited: Dyuman Joshi on 28 Oct 2023
I was about to implement a similar idea, with piecewise, but saw this answer.
How about this?
t = ((1:M)-1/2)/M;
t = [0 t+t(1)]
fun = @(T) 0;
for i = 2:M
fun = @(T) fun(T) + x(t(i)).*(T>=t(i-1)).*(T<t(i));

Sign in to comment.

More Answers (0)


Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!