3

matlab プログラムで for ループが 3 回ネストされています。最適化を手伝ってくれませんか。

w=5;
a = rand(m*n,10); b=rand(m,n);
for i = 1 : m
   for j = 1 : n
      for k = 1 : l
         if (i-w >= 1 && i+w <= m)
             featureL = a(((i-1)*n)+j,:); featureR = a(((i-1)*n)+j-d,:);
             D1(i,j,k) = sqrt( sum( (featureL - featureR) .* (featureL - featureR) ) );
             D2(i,j,k) = mean2( b(i-w:i+w, j-w:j+w) );
         end
      end
   end
end

meshgrid を使用するとパフォーマンスが大幅に向上することはわかっていますが、その方法がわかりません。

ありがとうございます。

こんなことできるのか..

[X Y Z] = meshgrid(1:m,1:n,1:l);
D1(something containing X,Y,Z) = sqrt( sum( ( a(something cont. X,Y) - a(something cont. X,Y)).*(a(something cont. X,Y) - a(something cont. X,Y)) ) );
% similarly D2

どうもありがとう!。

4

1 に答える 1