問題タブ [accumarray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
519 参照

matlab - スライディング カーネルを使用した 2D グリッド上の 3D 点群のプロパティの平均化 (Matlab)

3 列の形式 [x、y、z] で編成された 3D 点群があり、列 4 以降の各点の追加のプロパティがあります。すべてのポイントの距離はランダムであることに注意してください。z に沿ってデータを「平坦化」し、ボリューム内の点群の特定のプロパティを平均化するサイズ y、x の 2D マトリックスを作成するために、blockproc に似た移動フィルターを実装しようとしています。ボリュームは、x と y に沿った固定サイズのカーネルである必要があります。それらを dx と dy と呼びましょう。その中で任意の z の値が取得されます。さらに、ボリュームはスライドできる必要があるため、たとえば、移動ステップ (xStep および yStep と呼びましょう) は必ずしも dx および dy と同じではありません (dx=dy および xStep=yStep ですが)。

これまでのところ、私が見つけたMatlab関数は次のとおりです。

blockproc : スライディング カーネルを実装する機能がありますが、行列で動作します

accumarray : 離散点で動作しますが、スライディング カーネルは動作しません

3D ポイントと移動ブロック これは、私が概念的にやろうとしていることの漫画です。この関数は赤い点をキャプチャし、関数 (平均、標準偏差など) を適用して赤いセルの値を計算する必要があります。次に、xStep で移動し、関数を再適用します。

どうすればそれを達成できるか考えていますか? 私はしばらくそれで立ち往生しています。各反復でポイントにインデックスを付ける関数を作成しましたが、データセットがかなり大きい (>10^7 ポイント) ため、このアプローチには非常に時間がかかります。このスレッドは、スライディング カーネルなしで accumarray を使用して MWE を提供します。

どんな入力でも大歓迎です、ありがとう! PS: 初投稿です。書式設定が間違っていたらごめんなさい