Matlab: функция для нескольких файлов - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу прочитать все файлы wav, содержащиеся в папке, для каждого файла я выполняю функцию.Результатом этой функции является число.Я хочу сохранить несколько результатов в файл txt.

Это мой код:

dirMask = 'folder\*.wav';  
wavRoot = fileparts(dirMask);

Files=dir(dirMask);

x = []; 

for k=1:length(Files)
    FileNames = fullfile(wavRoot, Files(k).name)
    nomi=FileNames;
    [s,fs] = audioread(FileNames);

 a = function(s, fs);

    x=a; 

end

fid = fopen('file.txt','wt');
fprintf(fid,'%f\n',x);
fclose(fid);

Этот код не работает.Как я могу это сделать?

1 Ответ

0 голосов
/ 17 декабря 2018

Я немного переставил вещи.Я не был полностью уверен в исходном намерении, но я думаю, что это то, что вы пытались достичь:

dirMask = 'folder\*.wav';  
Files = dir(dirMask);
fid = fopen('file.txt','wt');

for k=1:length(Files)
   FileName = [ Files(k).folder '\' Files(k).name ]

   [s,fs] = audioread(FileName);

   % functions named function is a bad idea as it is keyword protected
   x = myFunction(s,fs);
   fprintf(fid,'%f\n',x);

end

fclose(fid);
...