MATLAB: Simplifying the If statements.

if statement

Hello Everyone, I am making this routing table for my network which is working fine but is there any efficient way of doing this, as i am running my simulation for 100000 iterations. In the following code, the variable idabs takes a value between 1 to 16 and depending on its value, the value of idcabs is generated accordingly.Thank you.
if any(idabs==[1:8])
cabs_vector=[9,10,11,12];
if idabs<=4
idcabs=cabs_vector((idabs))
else
idcabs=cabs_vector((idabs-4))
end
else
cabs_vector=[13,14,15,16];
if idabs<=12
idcabs=cabs_vector((idabs-8))
else
idcabs=cabs_vector((idabs-12))
end
end

Best Answer

cabs_vector = [9 10 11 12 9 10 11 12 13 14 15 16 13 14 15 16];
idcabs = cabs_vector(idabs);
Related Question