use sprintf with .wav files in for-loop

조회 수: 3(최근 30일)
harrie houthakker
harrie houthakker 2018년 5월 10일
댓글: Jan 2018년 5월 10일
Hi,
How do i properly recall a .wav file in a for-loop? Changing the name of the variable with sprintf gives me an error.
[wav1,Fs] = audioread('wav1.wav');
[wav2,Fs] = audioread('wav2.wav');
[wav3,Fs] = audioread('wav3.wav');
n = 3;
for k = 1:n
wavx = sprintf('wav%d', k);
[acor,lag] = xcorr(wav1,wavx);
end
I hope someone can help me, thanks a lot in advance!
  댓글 수: 3
Von Duesenberg
Von Duesenberg 2018년 5월 10일
편집: Von Duesenberg 2018년 5월 10일
In this case you may want to store the your signals in a cell array and then loop through your cell array. And xcorr does the padding for you.

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

채택된 답변

Von Duesenberg
Von Duesenberg 2018년 5월 10일
편집: Von Duesenberg 2018년 5월 10일
Or, assuming this is for the same piece of homework as yesterday, this can help you (although I hesitate to suggest it as an answer as it does not answer your question):
myFiles = uigetfile('*.wav', 'MultiSelect', 'on');
mySignals = cell(length(myFiles),1);
for iFile = 1:length(myFiles)
mySignals{iFile} = audioread(char(myFiles(iFile)));
end
  댓글 수: 1
harrie houthakker
harrie houthakker 2018년 5월 10일
Thank you so much.

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

추가 답변(1개)

Walter Roberson
Walter Roberson 2018년 5월 10일
  댓글 수: 2
Jan
Jan 2018년 5월 10일
@harrie: The application of xcorr is not a problem in any way, if you use a cell array. wav{1} is much better than wav1, because you can access it easily in a loop.

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

Community Treasure Hunt

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

Start Hunting!

Translated by