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 commentaires

Von Duesenberg
Von Duesenberg le 10 Mai 2018
I wouldn't do this if I were you. The easiest solution I think if your files have the same number of samples would be to import them directly into a matrix and then you can loop through the columns of the matrix.
harrie houthakker
harrie houthakker le 10 Mai 2018
allright, unfortunately they do not have the same amount of samples. But if so, (maybe with zeropadding), would that be any useful when my goal is to align them with xcorr? thanks
Von Duesenberg
Von Duesenberg le 10 Mai 2018
Modifié(e) : Von Duesenberg le 10 Mai 2018
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.

Connectez-vous pour commenter.

 Réponse acceptée

Von Duesenberg
Von Duesenberg le 10 Mai 2018
Modifié(e) : Von Duesenberg le 10 Mai 2018
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

Plus de réponses (1)

Walter Roberson
Walter Roberson le 10 Mai 2018

1 vote

2 commentaires

harrie houthakker
harrie houthakker le 10 Mai 2018
i came across this earlier indeed, but i find it difficult to find a better solution for my problem. Because my goal is to align the .wav files with xcorr.
Jan
Jan le 10 Mai 2018
@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.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by