MATLAB: How to create multiple for loops depending on the array size

for loopmultiple for loops

I would like to iterate over multiple for-loops, but the amount of for-loops depends on the size of a vector. Is there a good way to do this, without using a lot of if-statements?
arr = [a1 a2 ... an]
for a1=1:...
for a2=1:...
...
for an=1:...
%do something
end
end
end
for for examle if the vector arr has "n" entries I would like to have "n" for loops.

Best Answer

As in the answers you find in Stephen's links: Use an index vector instead of a list of for loops. Replace:
arr = [a1 a2 ... an]
for i1 = 1:a1
for i2 = 1:a2
...
for in = 1:an
%do something with [i1, i2, ... in]
end
end
end
By:
% Loops from 1 to a(n):
n = length(arr)
ini = ones(1, n);
fin = [a1 a2 ... an];
v = ini;
iterN = prod(find - ini + 1); % Number of iterations
for iter = 1:iterN
% Do something with v
...
% Increase index vector:
for k = 1:n % Or n:-1:1, as you want to
if v(k) < fin(k)
v(k) = v(k) + 1;
break; % Stop "for k" loop
end
v(k) = ini(k); % Reset this index
end
end