2017-08-12 65 views
-1

我想優化這段代碼。我在向量上使用函數fminbnd,並使用循環將其單個條目上的任務分開。MATLAB:使用矢量化加速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 

感謝您的關注。

真誠

盧卡

+0

不會'fminbnd'return總是?我的意思是不是'(x * v)^ 2'總是在'x = 0'的最小值? –

+0

無論如何,答案是否定的:原則上,最小化函數並不是矢量化適用的一種任務。 – FTP

回答

0

如果我離散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)))) 

結果是大致相同。