Optimization Matlab动态参数生成

Optimization Matlab动态参数生成,optimization,matlab,Optimization,Matlab,到目前为止,x有两个列,没有问题,但是现在x有不同的列数,我不知道如何编写模拟代码,但是在x中有动态的列数 min_x = min(x); max_x = max(x); step = (max_x - min_x)/50; [X, Y] = ndgrid(min_x(1):step(1):max_x(1), min_x(2):step(2):max_x(2)); 可以使用以下命令生成逗号分隔的列表: %# sample data x = rand(10,3); %# you ca

到目前为止,x有两个列,没有问题,但是现在x有不同的列数,我不知道如何编写模拟代码,但是在x中有动态的列数

min_x = min(x);
max_x = max(x);
step = (max_x - min_x)/50;
[X, Y] = ndgrid(min_x(1):step(1):max_x(1), min_x(2):step(2):max_x(2));

可以使用以下命令生成逗号分隔的列表:

%# sample data
x = rand(10,3);       %# you can change the column numbers here

%# calculate step sizes
mn = min(x);
mx = max(x);
step = (mx-mn)/50;

%# vec{i} = mn(i):s(i):mx(i)
vec = arrayfun(@(a,s,b)a:s:b, mn,step,mx, 'UniformOutput',false);

%# [X,Y,...] = ndgrid(vec{1},vec{2},...)
C = cell(1,numel(vec));
[C{:}] = ndgrid( vec{:} );

%# result = [X(:),Y(:),...]
result = cell2mat( cellfun(@(v)v(:), C, 'UniformOutput',false) );

可以使用以下命令生成逗号分隔的列表:

%# sample data
x = rand(10,3);       %# you can change the column numbers here

%# calculate step sizes
mn = min(x);
mx = max(x);
step = (mx-mn)/50;

%# vec{i} = mn(i):s(i):mx(i)
vec = arrayfun(@(a,s,b)a:s:b, mn,step,mx, 'UniformOutput',false);

%# [X,Y,...] = ndgrid(vec{1},vec{2},...)
C = cell(1,numel(vec));
[C{:}] = ndgrid( vec{:} );

%# result = [X(:),Y(:),...]
result = cell2mat( cellfun(@(v)v(:), C, 'UniformOutput',false) );