我使用如下的audioread功能从文件夹中加载音频文件对:
for audio_numm = 1:24
[sound{audio_numm},freq{audio_numm} ] = audioread(strcat('./M_S',int2str(audio_numm),'.wav'));
end
它加载没有任何问题,但是当我尝试使用以下功能播放其中的任何一个时:
for i=1:24
sound(sound{i})
end
我收到以下错误:
下标索引必须是实数正整数或逻辑值。
.wav文件保存在1x24数组中,其中每个元素都是另一个一维数组。我该如何解决这个问题?
答案 0 :(得分:1)
该错误来自以下事实:使用内置函数名称sound
命名变量。
Matlab说的是:
避免创建与函数同名的变量(例如i,j,mode,char,size和path)。 通常,变量名优先于函数名。如果创建使用函数名的变量,有时会得到意想不到的结果。
因此在for循环中,您期望成为的功能实际上是变量sound
。因此它是用非整数值索引的。
您可以使用命令exists
检查是否已使用名称,如果未使用该名称,它将返回零:
exist toto
ans =
0
感谢@Brice纠正我。