MATLAB: How to create a loop for this equation

equationloopMATLAB

function [level] = initiallevel(t,dem)
total = sum(dem(1:t));
level = total/t;
end
I need to then create a vector that consists of [L4 all the way to L12] so made up of 9 rows and 1 column.
>> L4 = initiallevel(4,demand);
>> L5 = initiallevel(5,demand);
>> L6 = initiallevel(6,demand);
>> L7 = initiallevel(7,demand);
>> L8 = initiallevel(8,demand);
>> L9 = initiallevel(9,demand);
>> L10 = initiallevel(10,demand);
>> L11 = initiallevel(11,demand);
>> L12 = initiallevel(12,demand);

Best Answer

  • With a loop:
    demand = rand(100,1);
    L = zeros(9,1);
    for t = 4:12
    L(t-3) = initiallevel(t,demand)
    end
    Using arrayfun
    demand = rand(100,1);
    L = arrayfun(@(t) initiallevel(t,demand),4:12)';