Determine the number of "for" loops by the user

Hi everyone
I want to write a code that takes the number of uncertain parameters from the user and creates a "for" loop according to their number and performs the calculations.
for example:
The user enters the number 4 as the number of uncertainty parameters and the code puts 4 "for" loops in a row. This way :
for i=1:I
for j=1:J
for k=1:K
for r=1:R
"calculations"
end
end
end
end
Is this possible in MatLab?

4 Comments

Use while instead
How does while address the question? The number of iterations is known; the number of nested loops is not.
Let me explain the problem further:
In the problem, the values I, J, K, R are known (for example all are equal to 7). And the calculation that is done in "for" loops is as follows: (A1 : A4 are also known)
"calculations"
Scen(:,l) = [A1(:,i);A2(:,j);A3(:,k);A4(:,r)];
l = l+1;
The only unknown issue is the number of "for" loops.
How can we implement this?
I think you can avoid using loops.....can you tell us what are those calculations?
I,J,K,R they will be always same?

Sign in to comment.

 Accepted Answer

% The number of iterations
ni = [3 4 2 2]; % 4 iterations [I J K R]; i is innerest loop
idx = ones(size(ni)); % first index
k = cumprod(ni);
for i=1:prod(ni)
% calculate index (ignore this part if calculation independent of index)
ii = i;
for j=length(ni):-1:2
ir = rem(ii-1, k(j-1)) + 1;
idx(j) = (ii - ir) /k(j-1) + 1;
ii = ir;
end
idx(1) = ii;
disp(idx)
% do calculation depending on idx
end
1 1 1 1 2 1 1 1 3 1 1 1 1 2 1 1 2 2 1 1 3 2 1 1 1 3 1 1 2 3 1 1 3 3 1 1 1 4 1 1 2 4 1 1 3 4 1 1 1 1 2 1 2 1 2 1 3 1 2 1 1 2 2 1 2 2 2 1 3 2 2 1 1 3 2 1 2 3 2 1 3 3 2 1 1 4 2 1 2 4 2 1 3 4 2 1 1 1 1 2 2 1 1 2 3 1 1 2 1 2 1 2 2 2 1 2 3 2 1 2 1 3 1 2 2 3 1 2 3 3 1 2 1 4 1 2 2 4 1 2 3 4 1 2 1 1 2 2 2 1 2 2 3 1 2 2 1 2 2 2 2 2 2 2 3 2 2 2 1 3 2 2 2 3 2 2 3 3 2 2 1 4 2 2 2 4 2 2 3 4 2 2

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 27 Aug 2021

Commented:

on 30 Aug 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!