MATLAB中ndgrid中可变数量的参数

时间:2015-03-01 22:16:10

标签: matlab cartesian-product

我想生成一个引用矩阵。这段代码有效,但我想使用一个可变大小的set。我无法管理......感谢您的帮助!

cpt = 1;
for ll = 1: 3
    nb_rules = 5;
    sets{cpt} = [1 : nb_rules];
    cpt = cpt +1;
end

[x y z] = ndgrid(sets{:});% Here begins the trouble :
mat_ref = [x(:) y(:) z(:)];% what if size is not 3 ?

1 个答案:

答案 0 :(得分:3)

在接收端使用cell - 数组GRID,以获得程序化comma-separated list

N = numel(sets);
[GRID{1:N}] = ndgrid(sets{:});
mat_ref = reshape(cat(N+1,GRID{:}),[],N)

(无需先声明GRID = cell(..)。)