1

複数の変数がある場合、matlab で変数の宣言をどのように処理するかを知りたいです。変数を含む別の .m ファイルを作成しますか? それらを構造に入れますか?ベストプラクティスは何ですか?

4

3 に答える 3

1

考えられるいくつかのシナリオがあります。数字が小さいほど効率的かもしれませんが、数字が大きいほど安全であると予想されます。

1. 多くの変数があり、すべての変数が必要になる場合がある

推奨される解決策: mat ファイルに保存する

必要な場合は、短いコマンドを実行してすべてをロードするだけです

2. 多くの変数があり、多くの場合、そのうちのいくつかだけが必要な場合

推奨される解決策:マットファイル、データベース、テキストファイル、または基本的にどこにでも保存

必要な場合は、短いコマンドを実行して、関連する変数のみをロードします

3. 多くの変数があり、多くの変数が必要になることが多い

推奨される解決策: 構造体に結合し、mat ファイルに保存する

構造体にのみロードするため、既存の変数を上書きするリスクを最小限に抑えることができます。構造体名に慣れ、それを他の目的で使用しないように注意してください。変数を使用する必要があるたびに、もちろん接頭辞として構造体名を追加する必要があります。

4. いくつかの変数があり、それらの多くが必要になることがよくあります

推奨される解決策: それらの関数 (またはクラス) を作成します。

これがデフォルト パス上にあることを確認する場合、これが最も安全な方法です。変数が存在する場合はその変数を使用し、そうでない場合は自明な関数を実行しようとします。

1 つの M ファイルで多数の関数を宣言できることに注意してください。

于 2013-10-17T13:44:38.653 に答える
1

確かに a を使用しstructて、変数を整理し、コンパクトな初期化を行うことができます。しかし、緩い変数を保持したい場合、および変数を初期化する非常にコンパクトな方法を探している場合は、 をご覧くださいdeal。以下は、その汎用性を示すための不自然な例です。

>> [A,B,C,D,E] = deal(2,'x',struct([]),[],rand(2),{'str',123})
A =
     2
B =
x
C = 
0x0 struct array with no fields.
D =
     []
E =
    0.8147    0.1270
    0.9058    0.9134
F = 
    'str'    [123]
>> 

明らかに可読性はかなり低下しますが、任意の数の in/out 引数を持つことができ、それらは任意のデータ型にすることができます。

于 2013-10-16T19:53:13.740 に答える