Trying to build an array of row vectors such that every possible combination of the 3 vector components is included
    5 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    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
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 
Weitere Antworten (0)
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!

