2

シナリオ:

信号処理解析のために、他の誰かからデータを受け取っています。それぞれが時間のチャンクを表す複数のデータ ファイルがある場合の私の標準的な方法は、データ ベクトル'data'と時間ベクトル'time'に名前を付け、各変数名を個別にしないことです。これらはファイルによって分離されているためです。それらを個別化する必要がある場合は、それらを呼び出すプログラムで行います。

しかし、私はそれらを個別化する誰かからデータを受け取ったので、各変数には一意の名前が付けられてい'data10'ます'data11'.

すべてのルーチンとプログラムが を呼び出します'data'。を使用せずにこれらの変数名を から に変更する方法はあり'dataxx'ますか? 私が最初に考えたのは、assignin 関数を試してみることでしたが、入力にワイルドカード引数を受け入れません。ファイルを独自の構造で個別にロードするたびに、ワイルドカードを使用しても問題が発生することはありません。'data'eval'value''data...'

ありがとう!

4

1 に答える 1

2

これらの変数をファイルからロードする場合は、次の出力でコマンドを.mat使用できます。load

collectedData = load('dataVariables.mat');

collectedData.mat-fileに含まれる各変数のフィールドがあります。変数にアクセスする場合data10は、動的フィールド名を使用してアクセスできます。

collectedData.(sprintf('data%i',10))

structfunフィールド名をループせずに構造の各フィールドに関数を適用する場合は、これが非常に役立つ可能性があることに注意してください。

于 2012-08-28T20:23:46.313 に答える