【发布时间】:2018-09-17 11:13:43
【问题描述】:
我的 matlab 脚本读取了一个文件夹中包含的几个 wav 文件。 每个读取信号都保存在单元格“mat”中,每个信号都保存在数组中。例如, 我有 3 个 wav 文件,我读取了这些文件,这些信号保存在数组“a、b 和 c”中。
我想应用另一个函数,该函数将每个信号(a、b 和 c)和对应的名称作为输入 文件。
dirMask = '\myfolder\*.wav';
fileRoot = fileparts(dirMask);
Files=dir(dirMask);
N = natsortfiles({Files.name});
C = cell(size(N));
D = cell(size(N));
for k = 1:numel(N)
str =fullfile(fileRoot, Files(k).name);
[C{k},D{k}] = audioread(str);
mat = [C(:)];
fs = [D(:)];
a=mat{1};
b=mat{2};
c=mat{3};
myfunction(a,Files(1).name);
myfunction(b,Files(2).name);
myfunction(c,Files(3).name);
end
我的脚本不起作用,因为 myfunction 只考虑文件夹中包含的最后一个 Wav 文件,尽管 数组 a、b 和 c 包含三个不同的信号。
如果我只读取一个 wav 文件,脚本运行良好。 for 循环有什么问题?
【问题讨论】:
-
在您的
for循环中,k是文件号。当你分配到a、babdc和调用myfunction时,你根本不使用k。您确定要将那部分放在循环中吗?