ndgridを使用して n 次元配列のインデックスを生成したいと思います。次元が変わる可能性があるため、ndgrid の出力数が動的になるように ndgrid をラップする方法はありますか? たとえば、2 次元配列の出力を次のようにしたいとします。
[output{1} output{2}]=ndgrid(1:5)
3 次元配列の出力は次のようになります。
[output{1} output{2} output{3}]=ndgrid(1:5)
などなど...
次元ごとに異なるサイズが必要な場合は、次のようなことを検討することをお勧めします: 隣接行列の作成。関連する部分は次のとおりです。
ndim = numel(sz);
I=cell(ndim,1);
% construct the neighborhood
for di=1:ndim
I{di}=1:sz(di);
end
[I{1:ndim}]=ndgrid(I{:});