1

ユーザーにファイルを選択するように求めるダイアログ ボックスを開き、EEGLAB という matlab ツールボックス用に作成された関数でそのファイルを使用しようとしています。コードは次のとおりです。

[F,PathName,FilterIndex] = uigetfile({'*.*','All Files(*.*)'}, 'Select your File ')
b = strcat(PathName,F)
Input = importdata(b)
FF = Input.filename;
%Loading the dataset into EEG lab. and rereferencing to Cz. 
EEG = pop_loadset('filename','FF','filepath','/Users/maheensiddiqui/Desktop/eeglab13_4_4b/EEG_data/Data/infant control01 and lance01 ref Fz - TF Analysis - all electrodes/');
EEG = eeg_checkset( EEG );

私が遭遇している問題は、次の行にあります。

EEG = pop_loadset('filename','FF','filepath','/Users/maheensiddiqui/Desktop/eeglab13_4_4b/EEG_data/Data/infant control01 and lance01 ref Fz - TF Analysis - all electrodes/');

これは私が得るエラーメッセージです:

ロード使用エラー ファイル '/Users/maheensiddiqui/Desktop/eeglab13_4_4b/EEG_data/Data/infant control01 および lance01 参照 Fz - TF 分析 - すべての電極/FF' を読み取ることができません: そのようなファイルまたはディレクトリはありません。pop_loadset のエラー (108 行目) TMPVAR = load('-mat', filename); newrereferencing のエラー (7 行目) EEG = pop_loadset('filename','FF','filepath','/Users/maheensiddiqui/Desktop/eeglab13_4_4b/EEG_data/Data/infant control01 and lance01 ref Fz - TF 分析 - すべての電極/ ');

ここで、最初にポップアップ ダイアログ ウィンドウを実行しない場合 (つまり、私が持っているコードの最初の 4 行と、次の行を削除します。

  EEG = pop_loadset('filename','206301L01.set','filepath','/Users/maheensiddiqui/Desktop/eeglab13_4_4b/EEG_data/Data/infant control01

および lance01 ref Fz - TF 分析 - すべての電極/');

つまり、ファイルの名前を明示的に指定すると、残りのコードは正常に動作します。なぜこれが起こっているのかわかりません...約20個の異なるファイルに対してコードを実行する必要があり、機能するために毎回名前を入力する必要がある場合、非常に非効率的です! (特に、自分のコードを他の人と共有する場合)。

このエラーが発生する理由を知っている人はいますか? ファイル形式のせいでしょうか?.mat や .txt などの従来の形式ではなく .set 。ただし、ファイル名を明示的に指定すると、.set 形式が機能します。また、スペースを除外するようにディレクトリを変更しましたが、それも機能しません...

助けていただければ幸いです!

4

1 に答える 1

2

ホキさんのコメントのおかげで問題を解決できました。ファイル名が変数の場合、ファイル名を文字列として入力していました。

EEG = pop_loadset('filename',FF,'filepath',...) 'FF' なしで FF を使用すると、変数として使用され、問題が修正されました。

ホキありがとう。

于 2015-02-22T18:47:03.147 に答える