Problem writing binary code

I tried to write the code using Salver Mosek, but I didn’t succeed. Can anyone help me?
t=1:24;
UT=[1 3 2 1];
DT=[4 2 2 2];

Show us what you tried, and what didn’t succeed. There are many posts on https://or.stackexchange.com/ which show how to use binary variables for various purposes in optimization problems

My problem is with intervals, for example,in Eq18 how to model sum from t - t+DT-1 for every moment ?
i have to use loop “for”?

T=24;
cvx_begin 
                    cvx_solver Mosek 
                    variable u_on(T,4) binary
                    variable u(T,4) binary
                  variable u_off(T,4) binary
minimize ...
subject to
 for t=1:T
                            sum(1-u(t:t+DT(i)-1,1))>=DT(i)*u_on(t,2)
                             sum(u(t:t+UT(i)-1,1))>=UT(i)*uu(t,1)
                            end

is it correct?
I think the code is dirty, how can i rewrite it with this manner i don;t have to use loop

You need to have another level of for loop over j. and change u_on(t,2) to u_on(t,j) and change uu(t,1) to u_off(t,j).

Perhaps some for loops could be eliminated,with vectorization. That’s not necessary, but would speed up CVX processing of the constraints.

I’ll let you check this, and work out the rest of the details.