0

異なるパラメーター セット (データ セットごとに 1 つのパラメーター セット) に関連付けられている複数のデータ セットを分析する必要があります。現在、特定のデータセットを分析するときにこれらのパラメーターをすぐに利用できるように、これらのパラメーターを保存する良い方法を見つけるのに苦労しています。

私が最初に試みたのは、それらparameters.mをデータ ディレクトリのスクリプト ファイルに保存し、 run([path_to_data,'/parameters.m']). ただし、これは適切なコーディング手法ではなく、スコーピングの問題も発生した (と思う) ことは理解しています。変更がparameters.mワークスペース変数に常に反映されるとは限らないからです。Clear all(ワークスペース変数は、コードを再実行した後にのみ変更されました。)

クリーンな解決策は、各データ ディレクトリに関数を定義することですparameters()が、その場合もディレクトリを検索パスに追加する必要があります。また、関数に一意の名前を付けないと、名前空間の衝突に遭遇するのではないかと心配しています。一方、一意の名前を使用することはあまり実用的ではありません...

より良い解決策はありますか?

4

1 に答える 1

0

structそのため、 orcell arrayを定義して、parametersそれが属するデータ ディレクトリに保存します。パラメータがどのように見えるかはわかりませんが、私たちのパラメータは次のようになります。

parameters.relative_tolerance = 10e-6
parameters.absolute_tolerance = 10e-6
parameters.solver_type = 3
.
.
.

そして私は書くことができます

save('parameter_file', 'parameters')

あるいは

save('parameter_file', '-struct', 'parameters', *fieldnames*)

オンライン ヘルプには、構造体のフィールドを個々の変数として保存する方法-structが示されています。

パラメータを保存したら、loadコマンドでロードできます。

要約すると、呼び出される変数 (ほとんどの場合、構造体またはセル配列) を作成しparameterssaveそれが参照する実験のデータ ディレクトリに配置します。その後、パラメーターとデータの読み取り、書き込み、および調査のためのすべての通常の Matlab ツールを使用できます。これよりも複雑なソリューションの必要性はわかりません(ただし、パラメーター自体が複雑になる場合があります)。

于 2012-08-14T10:15:13.177 に答える