how to run my conversion program using loops

조회 수: 1 (최근 30일)
Ishak Oussama
Ishak Oussama 2019년 6월 29일
편집: Rik 2019년 6월 30일
Hi
I have a program of resampling and conversion wav to pcm
so I have a main folder that contains several subfolders
and each subfolder contains a wav file and a text file
I want to run my program on all wav files in all subfolders, I can not do it,Thank you very much for your help.
here is my program:
[x, fs] = audioread(a_filename);
% resample:
fsin = fs;
fsout = 22050;
m = lcm(fsin,fsout);
up = m/fsin;
down = m/fsout;
x_22 = resample(x, up, down);
audiowrite([a_filename,'_22050','.wav'], x_22, fsout);
% convert to PCM 16 bit
precision = 'int16';
fidr = fopen([a_filename(1:11), '_22050','.wav'], 'r'); % open .wav file to read
fidw = fopen([a_filename(1:11), '_22050','.pcm'], 'wb'); % open .pcm file to write
w = int16(fread(fidr, inf, precision));% read .wav file
fwrite(fidw, w, precision); % write .pcm file
fclose(fidr);
fclose(fidw);
thank you in advance

답변 (1개)

per isakson
per isakson 2019년 6월 29일
편집: per isakson 2019년 6월 29일
Try this
%%
main_folder = 'c:\whatever\mainfolder';
sad = dir( fullfile( main_folder, '**', '*.wav' );
sad = reshape( sad, 1,[] );
for wav = sad
ffs = fullfile( wav.folder, wav.name );
disp( ffs )
end
If recursive dir call, "**", is not avaiable in your Matlab release try Recursive directory listing - Enhanced RDIR . (There are several rdir() in the File Exchange.)
  댓글 수: 3
per isakson
per isakson 2019년 6월 30일
Recursive directory listing by Gus Brown is "Created with R2007a, Compatible with any release". I've used it for a long time and cannot remember it having caused me any problem.
Rik
Rik 2019년 6월 30일
I just meant you do indeed need to use such a function, instead of using built-in Matlab tools. I'll edit the comment to make it more clear.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

제품


릴리스

R2014a

Community Treasure Hunt

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

Start Hunting!

Translated by