0

タイトルが十分に明確でないことは確かです。私は説明しようとします:
私は別のもの (修正されたもの) と比較しなければならない多くの表面を持っています。面は 10x18xN の行列で定義され、N は面の数です。

私が比較したいのは、任意の N 面の任意の点が固定面を超えているかどうかであり、それが超える距離を計算します。
次のように、ポイントごとに比較しています。

  for j = 1 : N
     for i = 1 : 10
        for k = 1 : 18
            if surface(i,k,j) > surface_fixed(i,k)
                 dist = surface(i,k,j) - surface_fixed(i,k)
            end
        end
     end
   end

しかし、時間がかかりすぎるため、この「距離」(距離)をポイントごとに計算することができるかどうかを知りたいです。

前もって感謝します!

4

2 に答える 2

1

「しかし、この「dist」(距離) をポイントごとに計算することが可能かどうか知りたいです。時間がかかりすぎるからです!

次に、おそらくこれをベクトル化したいでしょう。jそれはあなたの構造によるとは独立しているので、次のようなものです:

dist = surface(:,:,1) - surface_fixed;

ただし、インデックスが正しくない可能性があるため、詳細が必要だと思います。次のようなものを試すことができます:

dist = surface - reshape(repmat(surface_fixed,size(surface,1),size(surface))

しかし、あなたが何をしているのかについての詳細がなければ、私はそれがあなたが求めているものではないというかなり高い信用を持っています(そして不必要に大きな配列を作成するかもしれません)

于 2013-10-02T00:33:25.370 に答える