2016-07-13 4 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에 전달하려고 시도했지만 작동하지 않습니다. 먼저 'c : \ blah \ blah'와 같이 수동으로 source_dir의 경로를 지정 했었지만 지금은 푸시 버튼이 폴더를 선택하고 그 폴더의 경로를 실행을 시작할 함수로 전달하는 GUI를 만듭니다. – 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

이 오류가 계속 발생하지 않음 "유형이 'char'인 입력 인수에 대해 정의되지 않은 함수 'listFiles'." 우리가 글로벌하게 만들 수있는 방법이 있습니까? 내가 사용하려고 시도했던 것보다 위에 두는 것입니다. – Muhammad

+0

모든 함수를 하나의 m 파일에 넣어야하므로 정의되지 않은 함수 오류가 발생하지 않습니다. 필요하지 않은 경우 전역 변수를 사용하지 마십시오. 예를 들어 실수로 글로벌 변수를 변경하면 버그의 원인이되는 경우가 많습니다. – bushmills

+0

나는 경로명을 글로벌 varaibles로 만들고 그 작업을 다시 시도했다. 당신은 올바른 글로벌 선택권이 아닙니다.하지만 제 상황에서는 파일 이름을 저장하고 다른 이름으로 한 번만 사용하면됩니다. – Muhammad