Help looping through mat files with sound function
3 次查看(过去 30 天)
显示 更早的评论
I have several *.mat sound files (e.g., tunes_audio.mat) that I have load into my Matlab workspace using the following code:
s = what;
matfiles=s.mat;
for a=1:numel(matfiles)
load(char(matfiles(a)))
end
I would now like to play each of these files using the sound function. Simply typing sound(tunes_audio) works just fine. But I want to loop through all the loaded files and play them one at a time without having to type each name into the script. I have tried sound(char(matfiles{1}(1:end-4))) but I get an error message saying "Audio data must be real and floating point." Would somebody please help me loop through and read each loaded *.mat file?
Thank you in advance!
0 个评论
采纳的回答
Walter Roberson
2016-1-1
dinfo = dir('*.mat');
for K = 1 : length(dinfo)
thisfile = dinfo(K).name;
datastruct = load(thisfile);
fn = fieldnames(datastruct);
data = datastruct.(fn{1});
fprintf('now playing: %s\n', thisfile);
sound(data);
end
6 个评论
Walter Roberson
2016-1-29
You probably need to specify a sampling frequency in the sound() call, but you have not given us any way to know what the appropriate frequency would be.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Audio and Video Data 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!