2016-07-13 13 views
-1

プッシュボタンが押されたときにファイル/フォルダを検索し、それがパスになるGUIを作成したいパスを取得した後に処理を行う別の関数です。これまでのところ私はこのフォルダのパスを取得し、MATLABの別の機能にそのパスを与える方法

function pushbutton2_Callback(hObject, eventdata, handles) 
.... 
.... 

folder_name=uigetdir('File Selector'); 

このフォルダを参照し、今私は、私が説明した場合、私が使用しているプッシュボタンが実行を開始し、この関数に言い換える

source_dir = 'here the path of that folder comes'; 
source_files = dir(fullfile(source_dir, '*.txt/etc')); 

をそのフォルダのパスを提供したいをしましたこの関数が最初にその関数に入力するファイル/ディレクトリを選択します。私はいくつかの例を使用しようとしましたが、私はguiを作っているので、まだ成功していません。どんな助けもありがとう。ありがとうございました。

編集..

これは私がやろうとしていたものです。まさにあなたの問題が何であるかそれはかなりはっきりしていないすべてのファイル

+0

をロードするために、ループを

function abc %% this function is also called in another function. global folder_path source_dir = folder_path; %%% where all the files are placed src_files = dir(fullfile(source_dir, '*.txt')); 

に使用されます

function pushbutton2_Callback(hObject, eventdata, handles) ... folder_name=uigetdir('File Selector'); global folder_path folder_path=genpath(folder_name); 

%%脚注。関数への引数として 'folder_name'のパスを渡すのですか?この機能はどのように見えますか?あなたはそれをどこで定義しましたか?いくつかのコードが役に立つでしょう... – bushmills

+0

@bushmills私の意図は、folder_nameにフォルダパスを取得し、そのパスをsource_dirに与えることです。グローバル変数としてそのフォルダのパスを作成し、そのグローバル変数をsource_dirに渡してみましたが、動作しませんでした。最初に、私はsource_dirのパスを手動で 'c:\ blah \ blah'のように指定しましたが、今はpushbuttonがフォルダを選択し、そのフォルダのパスを実行を開始する関数に渡します。 – Muhammad

+0

次のようにします:1.フォルダパスを取得し、 'folder_name'に格納します。 2. pushbutton-callback関数で呼び出された関数に 'folder_name'を渡しますか? 3. 'folder_name'の文字列を' source_dir'に渡します。これは正しいですか? – bushmills

答えて

0
function pushbutton2_Callback(hObject, eventdata, handles) 

folder_name=uigetdir('File Selector'); 

listFiles(folder_name); 

end 

% put this function in the generated m-file 
function listFiles(folder_name) 

source_files = dir(fullfile(folder_name, '*.txt/etc')); 

% do something with the files 

end 
+0

このエラーが発生する "未定義の関数 'listFiles'は 'char'型の入力引数です。"私たちがグローバルにする方法はありますか?使用しようとしているものの上に置いています。 – Muhammad

+0

すべての関数を1つのmファイルに入れなければならないので、未定義の関数エラーは発生しません。必要がない場合は、グローバル変数を使用しないでください。たとえば、誤ってグローバル変数への変更がバグの原因となることがよくあります。バグの発見は非常に困難です。 – bushmills

+0

グローバル変数としてpathsnameを作って、もう一度試してみました。あなたは正しいグローバル変数は良い選択ではありませんが、私の状況では、ファイル名を保存してその名前を別の関数に一度渡すだけで何度も何度も使用されることはありません。 – Muhammad

関連する問題