# Trying to build an array of row vectors such that every possible combination of the 3 vector components is included

1 Ansicht (letzte 30 Tage)
Michael Costa am 7 Mai 2021
Kommentiert: Michael Costa am 7 Mai 2021
Take a vector [i j k]. I want to build an array of such vectors, with each element ranging from 1:20, such that every possible combination of the elements is included in the array. For example, the array would start with [1 1 1], [2 1 1], [3 1 1], and continue until [20 20 20] is reached. Here is what I have started with.
clear;
Ax_A = [];
for i = 1:20
Ax_A(i,1) = i;
end
for j = 1:20
Ax_A(:,2) = j
end
for k = 1:20
Ax_A(:,3) = k
end
When I don't supress the output for the 2nd (jth) and 3rd (kth) elements, it seems to be iterating through every single combination that I want. However, it is not storing all of these in the whole array that I am trying to build. If I do suppress the outputs, the result is just a 20x3 with i = 1-20, j = 20, and k = 20.
##### 0 Kommentare-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

David Fletcher am 7 Mai 2021
Bearbeitet: David Fletcher am 7 Mai 2021
If you are going the loop route, then you want all three loops to be nested, rather than three separate loops. Something more like this:
clear;
Ax_A = [];
for i = 1:20
page=[];
for j = 1:20
for k = 1:20
page=[page; k j i];
end
end
Ax_A(:,:,i)=page;
end
##### 1 KommentarKeine anzeigenKeine ausblenden
Michael Costa am 7 Mai 2021
Thanks David! works perfectly.

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Multidimensional Arrays 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!