I want to add or substract a certain number to my array cell (result(i)) based on corresponding binary(0 or 1) pattern I have . Condition: if binary_pattern is 1 then it should increase with speed of 0.75 per minute, if zero it should decrease with the same speed(-0.75). But when binary_pattern is 1 and inside the range 15 and 20 it should increase by 1 not 0.75. Which means when result reaches 20, has to decrease by and increase again when hits 15 with the speed of 1. Any advices on that? I have tried with the code below, but due to I'm new to Matlab couldn't get my head around it. Thanks in advance!
binary_pattern = zeros(100,1);binary_pattern(1:25) = 1;binary_pattern(50:75) = 1;binary_pattern(90:100) = 1; % to create binary pattern
minutes = [1:100]'; % scale of minutes
result = zeros(100,1); result(1,1) = 5; % initial condition of a state
for i = 1:100 if binary_pattern(i) == 1 result(i+1) = result(i) + 0.75; if result(i)>= 20 result(i+1) = result(i) - 1; elseif result(i)<= 15 result(i+1) = result(i) + 1; else end else result(i+1) = result(i) - 0.75; endendresult(end,:) = [];plot(minutes,result)
Best Answer