MATLAB无法播放已加载的.wav文件

时间:2018-11-08 15:04:53

标签: matlab audio

我使用如下的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数组中,其中每个元素都是另一个一维数组。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

该错误来自以下事实:使用内置函数名称sound命名变量。

Matlab说的是:

  

避免创建与函数同名的变量(例如i,j,mode,char,size和path)。 通常,变量名优先于函数名。如果创建使用函数名的变量,有时会得到意想不到的结果。

因此在for循环中,您期望成为的功能实际上是变量sound。因此它是用非整数值索引的。

您可以使用命令exists检查是否已使用名称,如果未使用该名称,它将返回零:

exist toto

ans =

     0 

感谢@Brice纠正我。