-1
我試圖從MATLAB GUI輸入..這是.wav
文件,我 已經使用負載的.wav給工作區
uigetfile({'*.wav'},'File Selector');
選擇文件。但選中.wav
文件還沒有出現在工作區中,我需要.wav
文件作進一步分析。
我試圖從MATLAB GUI輸入..這是.wav
文件,我 已經使用負載的.wav給工作區
uigetfile({'*.wav'},'File Selector');
選擇文件。但選中.wav
文件還沒有出現在工作區中,我需要.wav
文件作進一步分析。
當使用uigetfile
你必須specufy輸出變量在其中存儲name
所選文件的path
:
[f_name,f_path,sts]=uigetfile({'*.wav'},'File Selector')
您也應該檢查是選擇了「取消」的用戶(如果他中止選擇);要做到這一點,您可以使用第三個輸出(在上例中爲sts
):如果是「取消」,它將被設置爲0
。
然後,您可以使用函數aurdioread
加載"wav
文件。
如果您使用的是圖形用戶界面的工作,然後選擇並在callback
areading的wav
文件,你可以使用函數guidata
將數據存儲在GUI數據srtuct爲了能夠,後來,檢索數據和/或跨不同的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」
我試了上面的代碼,代碼運行良好,我可以處理數據..但它不會出現在工作空間.. Anywasys感謝您的建議.. il_raffa –
如果您在函數內使用上述代碼,您必須定義它使它返回你的值nt在工作區(類似'[f_name,f_path,sts,sampled_data,sample_rate] = my_function(input_1,input_2)''。用這個定義一個需要2個輸入的函數,然後在工作區中返回文件,路徑和「.wav」數據。如果您正在使用GUI(使用GUIDE創建),則可以使用OutputFcn。 –