問題タブ [neighbours]
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.
matlab - quickest way to calculate neighbourhood of pixels
I have a matrix which consists of positive and negative values. I need to do these things.
Let u(i,j)
denote the pixels of the matrix u
.
- Calculate the zero crossing pixels. These are the pixels in the grid if
u(i-1,j)
andu(i+1,j)
are of opposite signs oru(i,j-1)
andu(i,j+1)
are of opposite signs. - Then I need to calculate the narrow band around these zero crossing pixels. The width of the narrow band is
(2r+1)X(2r+1)
for each pixel. I am takingr=1
so for it I have to actually get the 8 neighborhood pixels of each zero crossing pixels.
I have done this in a program. Please see it below.
I am also attaching the isfront
and isband
functions.
The outputs are given below:, as well as the computation time:
When I run the code I do get the correct answers but the computation for the tasks is too much to my liking. Is there a better way to do it ? Especially the isband
function? How can I optimize my code further ?
Thanks in advance.
python - xyzc 値の配列 、3 列目に c 値が 1 であるかゼロでない行があるかどうかを調べます
ポイントの選択(つまり、近傍)があります
各ポイントには XYZC 値があります。C は 1 または 0 です。
いずれかのポイントの C 値が 1 の場合、中心点の C 値を 0 に割り当てたいと思います。
すべてのポイントの C 値が 0 の場合、中心点の C 値を 1 に割り当てます。
これはこれを行うための最も迅速で最良の方法ですか?近所で最大20/30ポイントでやります。
java - 2次元配列のラップアラウンドで隣人を数える(ライフゲーム)
だから私は人生のゲームプログラムを構築しようとしています.私は一般的にJava/コーディングにかなり慣れていません.2D配列で頭を包み込むのに問題があります. 配列を作成し、必要な場所に「セル」を配置するコンストラクターとメソッドがありますが、セルに隣接するセルの数を確認する方法がわかりません。
要約すると:
あらゆるタイプの 2D 配列を作成できます。
配列内のさまざまな要素に「セル」を配置できます
チェックされているセルの隣のスペースがすべての側に隣接していることを確認するにはどうすればよいですか (ネストされた for ループを使用して各セルを通過します)。
心に留めておいてください!ここではラップアラウンドが有効です。
更新: これは私が持っているものですが、テストすると、本来あるべきよりも 1 つ少ないネイバーが返されます。更新 2: 最初の if ステートメントは意味がないと思うので削除しました。しかし、今は c を 1 に上げることはできません。
私のテスト:
}
dart - ノード (頂点) は、グラフ内の隣接ノードについて知っている必要がありますか?
ダーツでグラフを実装しようとしています。
ノード (頂点)、エッジ、グラフのクラスを作成することを考えました。
主なアイデアは、グラフにはノードのリストとエッジのリストがあるということです。
後で、グラフにいくつかの検索アルゴリズムを実装します。
また、各ノードに近隣ノードのリストを追加して (近隣ノードのリスト)、各ノードがその近隣ノード (正確には後続ノード) を認識できるようにすることも考えています。ここでの私の考えは、ノードがこの情報を持っている場合、アルゴリズムが毎回エッジリストをチェックする必要がある場合よりも、1 つのノードの後続ノードを取得する方が速いということです。変更 (エッジ、ノードの削除、新しいエッジ、ノードの追加) も、2 つの場所で更新する必要があるため、コストが高くなることはわかっています。しかし、現時点では、作成後にグラフをあまり動的にする予定はありません。
このアプローチは理にかなっていると思いますか、それとも私のやり方には市長の欠点があるのでしょうか?
matlab - 領域内または領域外の近傍を計算する
MATLAB で次のような問題が発生しました。
以下のような行列があるとします。私がやりたいのは、黄色で指定されたピクセルの平均値を計算することです。(ansは108)
これは、指定されたオプションが外部の場合に計算されます。
一方、オプションがinsideとして指定されている場合、操作はイメージで実行されます。
**手動で設定されたオプションに応じて、ゼロでマークされた領域の内側または外側の平均値を見つけるアルゴリズムを書きたいです。**
****4 地区**または8 地区**が考えられます。これをMATLABで計算したい。皆さん、私を助けてくれますか?
c# - C#ネイバーチェック
配列の隣人をチェックする関数があり、その要素が 1 と等しいかどうかを確認します。X は見つかった各隣人を表し、v[l] は各 0 の位置です。毎回このコードに問題があり、「インデックス配列の境界の外にありました」と、他に何をすべきかわかりません。
matlab - MATLAB での近隣解析
A という名前の m 行 n 列の行列があり、値は 1 と 0 です。8 つの隣接ピクセルのうち少なくとも 5 つが 1 の場合、すべての 0 の値を 1 に変換したいと考えています。私が試したのはnlfilter
関数を使用することですが、引数のfun
使用方法がわかりません。助けが必要です。nlfilter
次のようにハンドルとして関数を作成しました。
それから私はこれをやろうとしました:
しかし、それはこのエラーを出しました:
なにか提案を?主な問題は、関数の処理に慣れていないことです。
= 更新中 =
やっと良い結果にたどり着きました。関数を変更してスカラーを出力し、それをfun
引数として使用すると、希望どおりに機能しますnlfilter
。これは私のコードです。助けてくれてありがとう。誰にとっても役立つことを願っています:
MATLAB では:
r - Rのネストされたループを持つforループの最適化(ベクトル化?)
巨大なデータセットの最近傍を計算するために、rdist を繰り返し使用しています。現在、6 列の 634,000 ベクトルのかなり小さな行列があります。
前述のように、rdist を使用して、各ベクトルから他のすべてのベクトルまでの距離を計算しています。各距離の計算は 1 ステップです。さらに、すべてのステップで、k=1,2,3,4 の最近傍を計算し、合計を取る関数を実行します (事実上、k=すべての近傍)。
データがどのように見えるかのサンプル (この 634k 行)
関数 rdist に慣れていない人のために、引数間のユークリッド距離を取得します。カスタム作成関数よりもはるかに高速に動作します。dist は行列距離内でのみ計算されるため、dist よりも適切です。私はそれが私がやっていることを技術的に知っていますが、distはそれをメモリに保存しようとしますが、それを行うことを検討するには大きすぎます。
上記の機能を改善するにはどうすればよいですか?適用関数をいじってみましたが、何も役に立ちません。すべてを明確に説明できたことを願っています。私の計算が正しければ、最悪の場合、そのコードを実行するのに 1 週間以上かかると推測されます。これを処理するための非常に強力なサーバーがあります。ただし、GPU はありません。マルチコアを試したことはありません (12 が利用可能である必要があります) が、コアごとに委任する方法がわかりません。
ご協力ありがとうございました。
java - DFS が 2 次元配列で機能しない
だから私は色の2次元配列を持っています。色は数字で表されます。現在、赤の番号1のみをチェックするdfsを作成しました。コードが正しいとは思いません。私は、それがあるノードの周りの隣人を取得し、それらをリストに追加する get neighbors を持っています。ボードは int の配列であり、訪問済みは、ノードが訪問された場合に true または false の配列です。これが私のdfsです:
get neighbors を使用して次の赤に適切にトラバースする方法がわかりません。
java - 2D配列で隣接セルを見つけようとして、IndexOutOfBoundsを取得しています
2D 配列 (Cell[][]
グリッド) を作成し、各セルには;ArrayList
という名前のが含まれています。neighborCells
そして今、私はその隣接セルを見つけようとしていますが、IndexOutOfBoundsException
. 手伝ってくれますか?