問題タブ [idl-programming-language]
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 関数 accumarray() に相当する IDL
MATLAB コードの一部を IDL に変換するタスクを与えられましたが、MATLAB 関数 accumarry() に出くわしたときに障害にぶつかりました。ここで説明する関数は 、別の配列で指定されたインデックスに基づいて、ある配列の要素を合計するために使用されます。例 1 は、ページの上部にある実際の関数の説明よりも、おそらくこれをよりよく説明しています。例 1 を IDL で再現しようとしても、for ループを回避できませんでしたが、可能であると確信しています。私の最善の試みは次のとおりです。
これを改善するためのアドバイスをいただければ幸いです。IDL にも同様の組み込み関数があると予想していましたが、追跡できませんでした。おそらく、ヒストグラムのビニングによる魔法でしょうか?
if-statement - 配列内の数値を IDL チェックする
私はIDLを初めて使用します。
事実上、私がやりたいことは、現在のインデックス I が配列内にあるかどうかをチェックする if ステートメントを持つことです。
Python では、次のようになります。
IDL で if をネストできることはわかっています。
これを行うための演算子または正気な方法があるかどうかはわかりません。
乾杯
pointers - IDL 構造体の構造体へのポインタ
次の構造が定義されています。
ポイントは配列であり、ポイントのサイズはさまざまであるため、ポインターである必要があることを理解しています。
後で新しい変数を作成します。
次に、値を入力します。
次に、次のようにして、ポイント配列をループに割り当てようとします。
しかし、この行は私にエラーを与えます:
誰か提案はありますか?
math - IDL で長さが異なるエンティティの類似性を比較する
さて、私はオブジェクトの配列を持っています。各オブジェクトには、ピクセル単位の x 座標と y 座標のベクトルがあります。
私は効果的に調べて、それらを互いに比較し、それらが同じものであると言う必要があります. (それらは複数の時間枠に分散しているため、長さにばらつきがあり、各ポイントで数ピクセルの違いが生じる可能性があります)
これまでのところ、問題なく動作するために行ったことは、現在のループの周りにボックスを効果的に作成し、将来の時間枠を比較することです。その相対位置を持つオブジェクトを取得します。(動きを考慮して側面に余分なものがあります)
次に、2 つのオブジェクト間のユークリッド距離を計算します。これは一部の場合は問題なく機能しますが、フレームが失われ、時折偽の結果が含まれます。
これに対抗するために、座標の相互相関を計算し、ユークリッドを計算するときにこれを長い配列のオフセットとして使用します。
しかし、これは私が望んでいたほどうまく機能していないようであり、調査を通じて、ユークリッドが最善の方法ではない可能性があることを理解しています。
理想的には、2 つの間の類似性評価が必要であり、「はい、これは後で同じオブジェクトです」と言うことができます。
人々は何を提案しますか?
r - .dat に書き込まれた fltarr の形式は何ですか?
私は実際には IDL を使用していませんが、IDL で記述されたモデルを使用しています。出力を .dat から .tif に抽出する事前に確立されたスクリプトがいくつかありますが、いくつかの中間ファイルを見てみたいと思います。基本的に、コードは次のとおりです。
file.dat の形式は何ですか? フラットバイナリ、リトルエンディアン?モデルのすべての構文を完全に理解しているわけではありませんが、var_cube は ncols,nrows が空間ドメインで、3 番目の D がタイム スライスである 3 次元配列になります。これらのファイルを他のプログラム (R など) で開き、ラスター スライスを表示したいと考えています。
c++ - 引数を C++ に渡すと IDL CALL_EXTERNAL がクラッシュする
CALL_EXTERNAL 関数を使用して IDL から C++ スクリプトを実行しようとしています。引数なしで動作させることができましたが、単一の IDL LONG INT などの引数を追加しようとすると、IDL がクラッシュします。エラーで:
私が使用しているテストコードは次のとおりです。
C++ コード:
IDL コード:
もちろん、このコードは練習用のコードですが、これを機能させることができなければ、配列と値の混合物を渡すことはできません。
特に明記しない限り、IDL は参照によってすべてを渡します。そのため、渡された引数を C++ コードのポインターとして扱い、 /ALL_VALUE キーワードを設定して引数を値として渡すようにしました。どちらも機能せず、上記と同じエラーが発生します。「グルー関数」について読んだことがありますが、それらを作成するためのガイドを見つけることができませんでした (すべてのソースが「ほとんどのプログラマーにとって簡単」であることを示しているにもかかわらず)" >.>
とにかく、私のオプションは次のとおりです。何かお手伝いできることがあれば、永遠に感謝します。
- この CALL_EXTERNAL 関数を機能させる
- C コードで必要なデータを何らかの方法でメモリから取得する
- すべてを C++ で書き直します (これを手伝う必要はありません)。
前もって感謝します。
idl-programming-language - 文字列配列から readcol でベクトルを呼び出しますか?
を使用してベクター名を生成し、それらを文字列配列に入れたいと思います。次に、これらのベクター タイトルを readcol コマンドで呼び出す必要があります。これが基本的に私が欲しいものです:
vectorname1/vectorname2 は、各ベクターの目的の名前を含む文字列配列です。 Spreadsheets は、読み込みたいすべてのスプレッドシートのファイル名の文字列配列です。
I = 0 の場合、n は開始します
readcol、スプレッドシート[I]、vectorname1[I]、vectorname2[I]、format='x,d,x,x,d'
エンドフォー
プロット、ベクトル名 1_1、ベクトル名 2_1
実行コマンド (つまり、execute('readcol,' + Spreadsheets[I] + ',' + vectorname1[I] + ',' ...) を使用してみましたが、IDL が追加の引用符に遭遇するとエラーを返しますフォーマットキーワード。
何か案は?
idl-programming-language - Windows のコマンド ラインから IDL ルーチンを呼び出し、ポップアップ ダイアログ ボックスを防止 (または無視) します。
次のように引数をコマンドラインに渡す短いスクリプト(別の言語ではたまたまPython)を作成しました-
ここで、p、o はそれぞれ位置引数とオプションの引数です (自明)。要するに、このスクリプトは IDL ルーチンを何度でも呼び出します。IDL 仮想マシンがロードされるたびに、IDL ルーチンが完了するまで実行され、リンスして繰り返されます。
残念ながら、IDL ルーチンの実行中にエラーが発生すると、ダイアログ ボックスがポップアップ表示され、手動でクリックするまでプログラムの実行が停止します。アイデアはこれをバッチ プロセスとして実行することなので、ダイアログ ボックスを無視して (エラーを受け入れ)、次の実行に進みます。ポップアップを防ぐために IDL を実行できる設定やオプションのコマンドについて何か考えはありますか? 前もって感謝します。