Create a cell array of the variables. Create a vector of order indices according to user input.
paramcell = {a, b, c, d};
paramlengths = cellfun(@length, paramcell);
order = randperm(4); %except use user input to decide the order
vals = cell(1,4);
for idx1 = 1 : paramlengths(order(1))
vals{order(1)} = paramcell{order(1)}(idx1);
for idx2 = 1 : paramlengths(order(2))
vals{order(2)} = paramcell{order(2)}(idx2);
CASE = 0;
for idx3 = 1 : paramlengths(order(3))
vals{order(3)} = paramcell{order(3)}(idx3);
for idx4 = 1 : paramlengths(order(4))
vals{order(4)} = paramcell{order(4)}(idx4);
CASE = CASE+1;
[x, y] = myfunction( vals{:} );
...
end
end
end
end
