1

オシロスコープを使用して信号を測定する課題に取り組んでいます。オシロスコープの出力データのパラメータを自動的に設定して、特定の数のファイルを書き込むプログラムを作成しました(Nと呼びましょう)。これらのファイルはすべてドキュメントに含まれています。

これらのファイルを Matlab にインポートし、必要なデータを抽出して、1 秒間隔 (ファイル間) でリアルタイムにプロットしたいと考えています。

実行例

ドキュメント/開発に12個のファイル(N = 12)を書き込み、キーが入力されたときにエスケープするwhileループを作成しますtextreadを使用して各ファイルを読み取ります(更新されたバージョンのmatlabがないため、textscanを使用できません)。
次のファイルの終わりに移動するデータをプロットします

問題は、ファイル名が一貫していないことです。それらはすべて、処理にかかった時間に従って名前が付けられているため、毎回異なる量で異なります (stream-july-10-10:12 、 stream-july-10-10:13 、stream-july-10-10:15 など。

したがって、実際にファイルの名前を調べなくても、次のファイルに移動してプロットする方法が必要です。

私はその多くを知っていますが、正しい方向への助けやポイントは大歓迎です。

ありがとう、ジミッチ

4

2 に答える 2

2

dir最後に変更された日付を、フィールド内の文字配列dateおよびフィールド内のシリアル日付として返しますdatenumsort配列を取得し、datenum返されたインデックスを使用してデータを読み込むことができます。

基本的:

A = dir(mypath); % You can also add filter criteria here, per the documentation
[~,idx] = sort([A.datenum]);

for ii = 1:12
    filetoload = fullfile(mypath,A(idx(ii)).name); % Build absolute path to your file
    % Load in file
end
于 2014-07-16T11:30:17.403 に答える
0

dir機能はあなたが探しているものだと思います。現在の matlab フォルダーの内容を一覧表示し、ワイルドカードをサポートします。これにより、ファイルのすべてのパスを文字列配列で取得し、その配列をループできるはずです。

のドキュメントdir

この質問も興味深いかもしれません: MATLAB で特定のディレクトリの下にあるすべてのファイルを取得する方法は?

于 2014-07-16T11:27:31.770 に答える