How can I write "n" "for loops" just by a single command?
    조회 수: 13 (최근 30일)
  
       이전 댓글 표시
    
I am interested in writing "n" "for loops" with variables "Var(i)" all varying from 1 to k, just by a single command. In other words I want to make the code automatic instead of writing n for loops manually (please see below). I appreciate your help.
for Var(1) = 1:k
    for Var (2) = 1:k
         .
         .
         .
         for Var(n) = 1:k
             y = f(Var(1),Var(2),...,Var(n))
댓글 수: 0
답변 (1개)
  Walter Roberson
      
      
 2013년 12월 12일
        
      편집: Walter Roberson
      
      
 2013년 12월 12일
  
      http://www.mathworks.co.uk/matlabcentral/answers/29662-generate-points-sorted-by-distance#comment_63935 and follow the link there for the algorithm.
Also you should consider using ndgrid and making your function vectorized.
Var = cell(n, 1);
[Var{1:n}] = ndgrid(1:k);
y = f(Var{:});      %no loop
댓글 수: 2
  Walter Roberson
      
      
 2020년 9월 30일
				https://www.mathworks.com/matlabcentral/answers/357969-using-recursive-function-to-calculate-all-possible-peptide-combinations#answer_282766 is probably a better link these days
  Walter Roberson
      
      
 2020년 10월 30일
				Even better, https://www.mathworks.com/matlabcentral/answers/623358-get-a-combination-of-unique-paths-for-given-pair-of-numbers#comment_1082638 gives code for the generalized version (entries can be different data types.)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

