How can I write "n" "for loops" just by a single command?
4 ビュー (過去 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.)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!