matlab - MATLAB 不播放加载的 .wav 文件
问题描述
我使用 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 数组中,其中每个元素都是另一个一维数组。我该如何解决这个问题?
解决方案
该错误来自一个变量以内置函数名称命名的事实sound
。
Matlab说的是:
避免创建与函数同名的变量(例如 i、j、mode、char、size 和 path)。通常,变量名优先于函数名。如果你创建一个使用函数名的变量,你有时会得到意想不到的结果。
所以在 for 循环中,你期望的函数实际上是变量sound
。所以它是用非整数值索引的。
您可以使用命令检查名称是否已被使用exists
,如果未使用该名称,它将返回零:
exist toto
ans =
0
感谢@Brice 纠正我。
推荐阅读
- shopify - Shopify 创建按重量销售的产品
- regex - 正则表达式匹配特定模式,但排除特定情况
- spring - Spring Security SAML 签名密钥/加密密钥
- git - git branch 不输出任何值
- webhooks - 使用谷歌助手/谷歌主页自动打开 URL
- vba - 如何调整弯头连接器的宽度?
- html - Why following Bootstrap columns fail when using img inside a column?
- javascript - 如何在 Scrapy 的“yield”中设置异常?
- reactjs - Redux Thunk 同步动作不同步
- r - 用分组变量中的值替换 NA