n-fold Cartesian product

5 ビュー (過去 30 日間)
Sundar Aditya
Sundar Aditya 2016 年 5 月 5 日
コメント済み: Sundar Aditya 2016 年 5 月 6 日
I need to compute the n-fold Cartesian product of a set, where n is a positive integer determined by some previous code. Is there any way to do this without using nested for-loops? ndgrid seems to be optimal for a fixed n, but I'm unable to find a solution for any general n. Thanks.

採用された回答

John D'Errico
John D'Errico 2016 年 5 月 5 日
For example:
S = 1:3;
n = 5;
q = cell(1,5);
s = repmat({S},1,n);
[Q{1:n}] = ndgrid(s{:});
Q = reshape(cat(n,Q{:}),[],n);
I'm not sure if that solution is a trivial one. Trivial is all in the eyes of the beholder anyway. To be honest, I've written a function in one of my toolboxes that does it for me, rather than have to remember this trick when I need it.
  1 件のコメント
Sundar Aditya
Sundar Aditya 2016 年 5 月 6 日
Thanks for the answer, John.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeRead, Write, and Modify Image についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by