から個々のグリッドを連結:傾きや一般的な方法で、私は次のことをやろうとしているndgrid
x = {0:1, 2:3, 4:6};
[a,b,c] = ndgrid(x{:});
Res = [a(:), b(:), c(:)]
Res =
0 2 4
1 2 4
0 3 4
1 3 4
0 2 5
1 2 5
0 3 5
1 3 5
0 2 6
1 2 6
0 3 6
1 3 6
私は、以下の方法を開始するために持っていると信じていますが、私はどのように把握することはできません継続:
cell_grid = cell(1,numel(x));
[cell_grid{:}] = ndgrid(x{:});
[cell_grid{:}]
ans =
ans(:,:,1) =
0 0 2 3 4 4
1 1 2 3 4 4
ans(:,:,2) =
0 0 2 3 5 5
1 1 2 3 5 5
ans(:,:,3) =
0 0 2 3 6 6
1 1 2 3 6 6
私はループとし、なしの両方の、三つの変数[a, b, c]
の場合のために多くの方法でこの問題を解決することができますが、私はより多くのベクトルを取得するときに苦労し始めます。それを直接作り直しても正しい結果は得られません。また、任意の次元数を持つときには、置き換えをpermuteと組み合わせるのは本当に難しくなります。
x
に3〜30個のベクトルにスケールされたこれを行う巧妙な方法はありますか?