2017-12-20 60 views
-6

私は星の光度をエネルギーと質量の関数として計算したデータファイルを持っています。したがって、与えられた質量に対して、私は0.1〜10 keVのエネルギー範囲を有し、次いで10〜100の質量範囲を有する。今私は任意の質量MとエネルギーEに対して光度の補間された値を与えることができる関数f(M、E)が必要です。私はPythonでそれを行う方法を知っていますが、Cでそれをするのに問題があります。Cの配列の2次元補間

私はgslの1つの変数に対してこれを行う方法を知っています。 oythoneでは、scipy.interpを使って配列を渡すだけで、補間された値が返されます。

main()関数で:

1-読んで、あなたのデータファイルを開きます。しかし、私はここでC.

+1

この質問には多くの問題があります.1つは、CがC#と同じではないという理解の欠如です。 – Sefe

+0

https://ericlippert.com/2014/03/21/find-a-simpler-problem/ – Yunnosch

+0

ちょうど、タグのAPI gslには、[いくつかの機能](https://www.gnu.org)があります/software/gsl/doc/html/interp.html?highlight=interpolation)これは補間を行うためのものです。これは、「私はGSLをどのように使用するのですか?スクラッチは私にすべての "一種の質問をしてください。 @OPあなたの質問を編集して、ライブラリのどの部分に問題があるのか​​を明確にすることをお勧めします。宿題割り当てのダンプのように見えるようになります(それはそうではありませんが、なぜそれがそのように見えるのか分かります)。 – jrh

答えて

1

でそれを行うための最善の方法は、あなたが何をする必要があるかですかと思いました行単位で配列や多次元配列に情報を格納し、データファイルを閉じます。

2ドットの雲を通過する線の方程式を計算します。

3質量を入力して答えを得るなどのように、コンソールにユーザーの入力を求めて、「エネルギーを入力」などのユーザー入力を求めます。これらの答えを保存して、光度関数を呼び出す結果をこれらの答えとともにparamsとしてエコーします。

次に、main()の外に、2つのパラメータを受け入れ、補間された明るさを出力するluminosityという新しい関数を作成します。