MATLAB: Finding all integer vectors between two vector bounds

combinationsMATLABvector

I would like to find all the integers vectors between two vector bounds. For instance, suppose that
lb = [0;1;0;1]
ub = [2;1;0;1]
Then the function would return
[0;1;0;1]
[1;1;0;1]
[2;1;0;1]
I need this in arbitrary dimenions n, I plan on evaluate a function that takes each of these vectors as argument.
Thanks!

Best Answer

You can use the FEX submission allcomb( ) by Jos for this:
c = arrayfun(@(a,b)a:b,lb,ub,'uni',false);
result = allcomb(c{:});
The vectors you want are the rows of the result. You can find allcomb here:
Related Question