function CHD_Multiview_Callback(hObject, eventdata, handles)
set(handles.chdprevious, 'Visible','on')
set(handles.chdnext,'visible','on')
set(handles.chdtext,'visible','on')
set(handles.chdpanel,'visible','on')
guidata(hObject, handles);
disp('Entered');
guidata(hObject, handles);
folder_name = uigetdir('','Select src data Directory');
if isequal(folder_name,0)
disp('Directory Selected');
else
% set(handles.EEGFilename,'string','Wait Loading File.......');
disp(['You have selected ', fullfile(folder_name)]);
disp('CHD Audio file processing wait')
handles.srcFolder= fullfile(folder_name);
% set(handles.edDirName,'string',handles.srcFolder);
end
guidata(hObject, handles);
% Specify the folder where the files live.
k='';
myFolder = 'F:\audio';
folder ='F:\';
% AudioArray{k} = audioread(fullfile(folder));
% maxaudio(k) = max(AudioArray{k});
% myFolder = 'F:\audio';
% Check to make sure that folder actually exists. Warn user if it doesn't.
if ~isfolder(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s\nPlease specify a new folder.', myFolder);
uiwait(warndlg(errorMessage));
myFolder = uigetdir(); % Ask for a new one.
if myFolder == 0
% User clicked Cancel
return;
end
end
% Get a list of all files in the folder with the desired file name pattern.
filePattern = fullfile(myFolder, '**/*.wav'); % Change to whatever pattern you need.
theFiles = dir(filePattern);
for k = 1 : length(theFiles)
baseFileName = theFiles(k).name;
fullFileName = fullfile(theFiles(k).folder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
% Now do whatever you want with this file name,
% such as reading it in as an image array with imread()
AudioArray = audioread(fullFileName);
[y,fs] = audioread(fullFileName);
subplot = 'theFiles';
help subplot

 Réponse acceptée

Sulaymon Eshkabilov
Sulaymon Eshkabilov le 9 Sep 2021
Maybe you had better employ just one plot() and hold it to plot all imported data from audio files, e.g.:
plot(y), hold all % That will be held and all of the imported audio data will be plotted in a different line color

9 commentaires

I would modify that slightly:
[~, basename] = fileparts(fullFileName);
t = (0:size(y,1)-1) / fs;
plot(t, y, 'DisplayName', basename);
hold on
and then after the loop,
legend show
Please help. i want to plot these readed audio file in a axis or in mulitiple axis.please help i'm new to MATLAB
function CHD_Multiview_Callback(hObject, eventdata, handles)
set(handles.chdprevious, 'Visible','on')
set(handles.chdnext,'visible','on')
set(handles.chdtext,'visible','on')
set(handles.chdpanel,'visible','off')
guidata(hObject, handles);
disp('Entered');
guidata(hObject, handles);
folder_name = uigetdir('','Select src data Directory');
if isequal(folder_name,0)
disp('Directory Selected');
else
% set(handles.EEGFilename,'string','Wait Loading File.......');
disp(['You have selected ', fullfile(folder_name)]);
disp('CHD Audio file processing wait')
handles.srcFolder= fullfile(folder_name);
% set(handles.edDirName,'string',handles.srcFolder);
end
guidata(hObject, handles);
% Specify the folder where the files live.
k='';
myFolder = 'F:\audio';
folder ='F:\';
% AudioArray{k} = audioread(fullfile(folder));
% maxaudio(k) = max(AudioArray{k});
% myFolder = 'F:\audio';
% Check to make sure that folder actually exists. Warn user if it doesn't.
if ~isfolder(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s\nPlease specify a new folder.', myFolder);
uiwait(warndlg(errorMessage));
myFolder = uigetdir(); % Ask for a new one.
if myFolder == 0
% User clicked Cancel
return;
end
end
function CHD_Multiview_Callback(hObject, eventdata, handles)
set(handles.chdprevious, 'Visible','on')
set(handles.chdnext,'visible','on')
set(handles.chdtext,'visible','on')
set(handles.chdpanel,'visible','off')
folder_name = uigetdir('','Select src data Directory');
if ~ischar(folder_name)
disp('No directory Selected');
return
end
disp(['You have selected ', folder_name]);
disp('CHD Audio file processing wait')
handles.srcFolder = folder_name;
dinfo = dir(fullfile(folder_name, '*.wav'));
filenames = fullfile(folder_name, {dinfo.name});
nfiles = length(filenames);
AudioArray = cell(nfiles, 1);
FsArray = zeros(nfiles, 1);
maxaudio = zeros(nfiles, 1);
for k = 1 : nfiles
thisfile = filenames{k};
[~, basename] = fileparts(thisfile);
[thisaudio, thisfs] = audioread(thisfile);
AudioArray{k} = thisaudio;
FsArray(k) = thisfs;
maxaudio(k) = max(thisaudio(:));
t = (0:size(thisaudio,1)) / thisfs;
plot(t, thisaudio, 'DisplayName', basename);
hold on
end
hold off
xlim auto; ylim auto;
xlabel('time (s)');
legend show
handles.AudioArray = AudioArray;
handles.FsArray = FsArray;
handles.maxaudio = maxaudio;
guidata(hObject, handles);
Deepu S S
Deepu S S le 9 Sep 2021
i run above problem but it shows error.kindly please refer below error.please help me
You have selected F:\d_1Heart Audio Signal.mp3
CHD Audio file processing wait
Error using plot
Vectors must be the same length.
Error in EEG_SCT>CHD_Multiview_Callback (line 10470)
plot(t, thisaudio, 'DisplayName', basename);
Error in gui_mainfcn (line 96)
feval(varargin{:});
Error in EEG_SCT (line 37)
gui_mainfcn(gui_State, varargin{:});
Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)EEG_SCT('CHD_Multiview_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating Menu Callback.
t = (0:size(thisaudio,1)-1) / thisfs;
Deepu S S
Deepu S S le 10 Sep 2021
Modifié(e) : Walter Roberson le 10 Sep 2021
sir now i run the code but still geting error please refer below code and error commend
function CHD_Multiview_Callback(hObject, eventdata, handles)
set(handles.chdprevious, 'Visible','on')
set(handles.chdnext,'visible','on')
set(handles.chdtext,'visible','on')
set(handles.chdpanel,'visible','off')
folder_name = uigetdir('','Select src data Directory');
if ~ischar(folder_name)
disp('No directory Selected');
return
end
disp(['You have selected ', folder_name]);
disp('CHD Audio file processing wait')
handles.srcFolder = folder_name;
dinfo = dir(fullfile(folder_name, '*.wav'));
filenames = fullfile(folder_name, {dinfo.name});
nfiles = length(filenames);
AudioArray = cell(nfiles, 1);
FsArray = zeros(nfiles, 1);
maxaudio = zeros(nfiles, 1);
for k = 1 : nfiles
thisfile = filenames{k};
[~, basename] = fileparts(thisfile);
[thisaudio, thisfs] = audioread(thisfile);
AudioArray{k} = thisaudio;
FsArray(k) = thisfs;
maxaudio(k) = max(thisaudio(:));
t = (0:size(thisaudio,1)) / thisfs;
plot(t, thisaudio, 'DisplayName', basename);
hold on
end
hold off
xlim auto; ylim auto;
xlabel('time (s)');
legend show
handles.AudioArray = AudioArray;
handles.FsArray = FsArray;
handles.maxaudio = maxaudio;
t = (0:size(thisaudio,1)-1) / thisfs;
guidata(hObject, handles);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ERROR
You have selected F:\chd
CHD Audio file processing wait
Error using plot
Vectors must be the same length.
Error in EEG_SCT>CHD_Multiview_Callback (line 10471)
plot(t, thisaudio, 'DisplayName', basename);
Error in gui_mainfcn (line 96)
feval(varargin{:});
Error in EEG_SCT (line 37)
gui_mainfcn(gui_State, varargin{:});
Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)EEG_SCT('CHD_Multiview_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating Menu Callback.
Walter Roberson
Walter Roberson le 10 Sep 2021
Put a breakpoint at the plot call and show us size(t) and size(thisaudio)
You did not change
t = (0:size(thisaudio,1)) / thisfs;
to
t = (0:size(thisaudio,1)-1) / thisfs;
like I said to do yesterday.
Deepu S S
Deepu S S le 10 Sep 2021
Now its work thank you

Connectez-vous pour commenter.

Plus de réponses (1)

Catégories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by