MATLAB:使用矢量化加速 fminbnd
MATLAB: Speed up fminbnd using vectorization
我正在尝试优化这段代码。我在向量上使用函数 fminbnd,使用循环将任务拆分到它的单个条目上。
是否可以加快矢量化过程?
for i = 1:A
for ii= 1:B
for iii = 1:C
fun = @(x) (x * variable(i,ii,iii))^2 ;
[arg_min(i,ii,iii), min_(i,ii,iii)] = fminbnd(fun,-2,2);
end
end
end
感谢关注
此致
卢卡
如果我将 x 的域离散化会怎样?
举个例子:
x = permute(repmat([-2:0.01:2]',[1,A,B,C]),[2,3,4,1]);
variable2 = repmat(variable,[1,1,1,length([-2:0.01:2]')]);
fun = (x.*variable2).^2;
min_2 = min(fun,[],4);
查看结果:
max(max(max(abs(min_ - min_2))))
结果差不多
我正在尝试优化这段代码。我在向量上使用函数 fminbnd,使用循环将任务拆分到它的单个条目上。
是否可以加快矢量化过程?
for i = 1:A
for ii= 1:B
for iii = 1:C
fun = @(x) (x * variable(i,ii,iii))^2 ;
[arg_min(i,ii,iii), min_(i,ii,iii)] = fminbnd(fun,-2,2);
end
end
end
感谢关注
此致
卢卡
如果我将 x 的域离散化会怎样? 举个例子:
x = permute(repmat([-2:0.01:2]',[1,A,B,C]),[2,3,4,1]);
variable2 = repmat(variable,[1,1,1,length([-2:0.01:2]')]);
fun = (x.*variable2).^2;
min_2 = min(fun,[],4);
查看结果:
max(max(max(abs(min_ - min_2))))
结果差不多