I was creating this function for a launch control's ignition cut and when running it, the function avoid all the conditions where v appears. I am not very familiar to this kind of conditioning as I recently learnt it and it is the first time I am using it with two inputs and one output. Code and variables used can be seen below. Initially when I created the code I tried using if statements, but I soon realised when using that all values of the vectors have to be below the condition otherwise the statement jumps straight to the "else" part.
function injcut = injcut_fun (v,rpm)
global LCREV_MAX LCSPEED_MAX
injcut = rpm;
injcut (:) = 1;
injcut (rpm > 11100) = 0;
injcut (rpm > 10900) = 0.5;
injcut (v <= LCSPEED_MAX/3.6 & rpm > LCREV_MAX+300) = 0;
injcut (v <= LCSPEED_MAX/3.6 & rpm > LCREV_MAX+200) = 0.25;
injcut (v <= LCSPEED_MAX/3.6 & rpm > LCREV_MAX+100) = 0.5;
injcut (v <= LCSPEED_MAX/3.6 & rpm > LCREV_MAX) = 0.75;