2017-04-23 1 views
-1

작업 공간. 그러나 .wav 파일이 작업 공간에 나타나지 않았다면 추가 분석을 위해 .wav 파일이 필요합니다.부하 .WAV 내가 파일을 선택 <pre><code>uigetfile({'*.wav'},'File Selector'); </code></pre> <p></p>을 사용하고, <code>.wav</code> 파일이다 .. 내가 MATLAB GUI에서 입력을하려고

[f_name,f_path,sts]=uigetfile({'*.wav'},'File Selector') 

또한 확인해야합니다은 (그가 중단하는 경우 "취소"를 선택한 사용자입니다 : uigetfile를 사용하는 경우

답변

0

당신은 name 선택한 파일의 path를 저장할 수있는 출력 변수를 specufy해야 선택); 이렇게하려면 세 번째 출력 (위의 예에서 sts)을 사용할 수 있습니다 : "취소"의 경우 0으로 설정됩니다.

그런 다음 을 사용하여 "wav 파일을로드 할 수 있습니다.

당신이 GUI 작업 후 선택하고 callbackwav 파일을 areading하는 경우를 검색하는 데, 나중에, 수있게하기 위해 GUI 데이터 srtuct에 데이터를 저장하는 기능 guidata을 사용할 수 있습니다 데이터를 공유하고 서로를 공유 할 수 있습니다. callback. 가능한 구현 다음합니다 (fullfile 기능은 파일의 전체 이름을 생성하는 데 사용됩니다 - "경로 \ file_name을)를에서

:이 도움이

% Get the file 
[f_name,f_path,sts]=uigetfile({'*.wav'},'File Selector') 
% If the user selected a file (if he did not click "Cancel") 
if(sts) 
    % Load the ".wav" file 
    [sampled_data,sample_rate]=audioread(fullfile(f_path,f_name)); 
end 

% Get the GUI data 
my_guidata=guidata(gcf) 
% Add the ".wav" file data to the GUI data struct 
my_guidata.sampled_data=sampled_data 
my_guidata.sample_rate=sample_rate 
% Store the GUI data with the ".wav" data 
guidata(gcf,my_guidata) 

희망을,

Qapla '

+0

위 코드를 시도했지만 코드가 잘 실행되고 데이터를 처리 할 수 ​​있습니다 .. 그러나 작업 영역에 나타나지 않습니다 .. Anywasys 제안 해 주셔서 감사합니다 .. il_raffa –

+0

함수 내에서 위 코드를 사용한다면 그래서 그것은 당신이 가지고있는 값을 반환합니다. 작업 공간의 nt ('[f_name, f_path, sts, sampled_data, sample_rate] = my_function (input_1, input_2)'와 같은 것). 이를 통해 2 입력을 요구하는 함수를 정의하고 파일, 경로 및 ".wav"데이터의 작업 영역을 반환합니다. GUIDE로 작성된 GUI로 작업하는 경우 OutputFcn을 사용할 수 있습니다. –

관련 문제