我正在使用matlab gui,我正在录制声音,然后将其保存在c中的文件夹中,然后在按wav播放时,在列表框中的文件夹中显示录制的声音。 Matlab给出一个错误,错误是:
************Error using audioread (line 74)**
***The filename specified was not found in the MATLAB path.
Error in Monitoring_System>play_Callback (line 178)
[q, Fs] = audioread(thisstring);
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in Monitoring_System (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)Monitoring_System('play_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating uicontrol Callback*************
-记录代码:
format shortg
c = clock;
fix(c);
a=num2str(c);
year=strcat(a(1),a(2),a(3),a(4),a(5));
month=strcat(a(19),a(20));
day=strcat(a(33),a(34));
hour=strcat(a(48),a(49));
min=strcat(a(63),a(64));
sec=strcat(a(74),a(75));
name=strcat(year,'-',month,'-',day,'-',hour,'-',min,'-',sec);
fullpath=fullfile('c:\monitoringsystem',name);
wavwrite(y,44100,fullpath);
y=[];
在列表框中显示它们的代码:
d = dir('C:\monitoringsystem\*.wav'); %get files
set(handles.listbox1,'String',{d.name})
播放从列表框中选择的声音的代码:
allstrings = cellstr( get(handles.listbox1, 'String') );
curvalue = get(handles.listbox1, 'Value');
thisstring = allstrings{curvalue};
[q, Fs] = audioread(thisstring);
soundsc(q,44100);
任何帮助解决该问题的方法,并保留在特定的文件夹中。我将录制的声音复制到matlab文件夹,然后在gui中按play,以确保该wav声音没有任何错误。
最佳答案
您是否尝试调试此文件并在选择文件后查看d
包含什么?
As per the documentation,d = dir('C:\monitoringsystem\*.wav');
返回具有以下字段的struct
:name
,date
,bytes
,isdir
,datenum
(至少在MATLAB 2015a上)。尽管{d.name}
正确地为您提供了文件名,但是您应该注意,这只是相对路径,因此,除非文件位于 Activity 目录中,否则MATLAB不会在哪里查找文件。
我不完全确定为什么您会遇到allstrings
,curvalue
和thisstring
的所有麻烦,但是如果我正确理解了您要执行的操作,则建议使用以下两种方法之一:
C:\monitoringsystem
),然后在保存\加载时使用它:DEFAULT_PATH = `C:\monitoringsystem`; %// Definition
...
fullpath = fullfile(DEFAULT_PATH,name); %// When saving
...
d = dir(fullfile(DEFAULT_PATH,'*.wav')); %// When listing files
...
[q, Fs] = audioread(fullfile(DEFAULT_PATH,{d.name})); %// When reading a file
[FileName,PathName] = uigetfile('*.wav','Select the WAV file');
FullPath = fullfile(PathName,FileName);
(然后其余部分与第一种情况非常相似)