Azzera filtri
Azzera filtri

How can I make a loop inside a loop k time

1 visualizzazione (ultimi 30 giorni)
muly san
muly san il 15 Ago 2013
For example:
I want to create fonction that get matrix: A=[3 5 6]
and do the next steps:
for i1=1:A(1); for i2=1:A(2); for i3=1:A(3); B=[i1 i2 i3]; end end end
But the length of A can vary. thank you

Risposte (2)

Andrei Bobrov
Andrei Bobrov il 15 Ago 2013
Modificato: Andrei Bobrov il 15 Ago 2013
Use function fullfact from Statistics Toolbox
B = fullfact(A);
or
a = arrayfun(@(x)1:x,A,'un',0);
[i3,i2,i1] = ndgrid(a{end:-1:1});
B = [i1(:),i2(:),i3(:)];
or
B = zeros(prod(A),3);
k = 1;
for i1 = 1:A(1)
for i2 = 1:A(2)
for i3 = 1:A(3)
B(k,:) = [i1,i2,i3];
k = k +1;
end
end
end

muly san
muly san il 15 Ago 2013
thank you.
It was just an example. I want to know how to do the loop inside a loop k time anyway.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by