Creating permutations of vectors using basic matlab commands such as loops.
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
In the problem I have to take a vector x = [x1,x2,x3,x4] ,where 0 <= xi <= m, and m is an inputted integer.
For example if m = 1,
I would need to create vectors
[0,0,0,0]
[1,0,0,0]
[0,1,0,0]
[0,0,1,0]
[0,0,0,1]
[1,1,0,0]
all the way to [1,1,1,1]
2 Kommentare
Antworten (1)
Daniel M
am 28 Okt. 2019
You can do it in two lines of code by using ndgrid, and putting the four outputs column-wise into a matrix. That would be the most efficient way. If you're required to use loops, that is lame.
[a,b,c,d] = ndgrid(0:4);
M = [d(:) c(:) b(:) a(:)];
4 Kommentare
Daniel M
am 28 Okt. 2019
Right, but all the vectors would be stored as rows in the matrix T. We're saying the same thing. As for your algorithm, start by calculating how many iterations you'll need, given N number of elements and M number of spots. E.g. you already know for N = 5 (from 0:4) and M = 4 the number of rows of T is 625. But how is that calculated?
Then start very simply using only M = 2 and N = 2, and see if you can code that properly.
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!