問題タブ [hyperbolic-function]
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 - ビッグ データ用に matlab for loop を最適化する
双曲線正接 (シグモイド) カーネルを使用して、2 つの画像間のユークリッド距離を計算したいと考えています。Gaussian Kernel を使用した同じ問題について詳しく説明したこのリンクをたどってください。
x=(i,j)
&y=(i1,j1)
がイメージ内の任意の 2 ピクセルである場合、双曲線タンジェント カーネルの場合、 myは次
のようH(x,y)
に定義され
ます。パラメータは 1/N として取得できます。ここで、N は私の画像の寸法 (私の場合は 8192 x 200) であり、c は問題に応じて任意の値を取ることができます。双曲線正接カーネルの詳細については、こちらを参照してください。H(i,j) = tanh(alpha*(x'*y) + c)
alpha
c
x'
x
alpha
目標を達成し、実行時間を考慮に入れるために、以下の MATLAB スクリプトを作成しました。
あらゆる努力にもかかわらず、ランニング コストを削減するためにこれ以上ベクトル化することはできませんでした。現在、完了するのに約 29 時間かかります。これは、さまざまな異なる画像に対して実行したいので、私には長すぎます。Gaussian Kernel の場合に @dan-man が行ったように、組み込みの MATLAB 関数を使用して完全にベクトル化された形式にしたいと考えています。彼の助けにより、Gaussian バージョンは 1 ~ 2 秒で完了しました。この場合も同じ機能を使用するために最善を尽くしましたconv2fft
が、それを達成する方法を見つけるのは難しいようです.
同じ問題のガウスバージョンと同じ割合でアルゴリズムのランニングコストを得るために、余分なforループを1つ削除するのを手伝ってくれませんか。
前もって感謝します。
r - R の双曲線正接は、Windows では NAN をスローしますが、Mac ではスローしませんか?
R base 関数を使用して Windows で双曲線タンジェントを推定すると、tanh
大きな値 (実数、虚部が 0) の場合、関数は 'NaN' を返します。
ただし、Mac では同じ値が 1 を返します (「実際の」数学値と一致すると、1 に近くなるはずです)。
質問 1: なぜこのようなことが起こっているのか、手がかりを持っている人はいますか?
追加情報
tanh
Macは任意の大きな値に対して 1 を返すように見えるため、これは浮動小数点の問題ではないようです。
この問題は、虚数部に次のように関連しているようです。
Windows と Mac の両方で。この問題は、システム (またはプロセッサ?) 固有のようです:
- El Capitan v 10.11.6プロセッサを搭載した Mac: 2.7 GHz Intel Core i5
- Sierra v 10.12.3プロセッサを搭載した Mac: 3.2 GHz Intel Core i5
- Windows 10 Home v 1607プロセッサー: Intel Core m3-SY30 CPU@ 0.90 GHz 1.51 GHz
- Windows 7 Home Premium Service Pack 1プロセッサ: Intel Core i5-2410M CPU @2.30 GHz 2.30 GHz。
これらの Windows マシンNaN
は、Mac の1 + 0i
. すべての場合において、「最新」(64 ビット) の R バージョン 3.3.3 を使用しています。
matlab - tdoa 3D ポジショニング用の拡張カルマン フィルター
拡張カルマン フィルターを使用して、TDoA メソッドを使用してスパイス内のモバイル デバイスを特定しようとしています。
私が得る問題は、コーンがグラウンドトゥルースの位置に収束しないことです。
行列 P、Xh、および X が複素数の値を持つ場合がありますが、それでよろしいですか?
何かを変更するか、停止条件を追加する必要がありますか。
私のコードの一部は