首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB听觉反应-从单元格中的结构中调用一个.wav文件的问题

MATLAB听觉反应-从单元格中的结构中调用一个.wav文件的问题
EN

Stack Overflow用户
提问于 2019-04-14 03:24:19
回答 1查看 462关注 0票数 0

data_structure 是(长度(Num_sounds)行x3列单元格的单元格。

  • 每一行对应不同的声音。
  • 第一列=目录名
  • 第二列=用于.wav文件的文件结构
  • 第三列=共振峰数据 for i=1:num_sounds; cd(char(sound_dirs{i})); %open a directory wav_list=dir('*.wav'); %get all the .wav files in the folder data_structure{i,2}=wav_list; % fills second column with struct the length of the .wav files. data_structure{i,1}=words{i}; end

问题在这里

代码语言:javascript
复制
 for i=1:num_sounds;
        num_wavs=length(data_structure{i,2}); 
        for i=1:num_wavs;
            [y Fs]= audioread((data_structure{i,2}.name)); %%problem here

我意识到问题是,我在同一时间调用同一个文件夹中的所有'.wav‘文件,而不是每次都接收

我试过data_structure{1,2}.name(40); % the first folder has 47 .wav files

但那不管用。

name <--保存.wav文件的所有名称。

EN

回答 1

Stack Overflow用户

发布于 2019-04-14 05:20:16

排在队伍里

代码语言:javascript
复制
[y Fs] = audioread((data_structure{i,2}.name)); %%problem here

表达式data_structure{i,2}.name将同时将所有文件名(在您的示例中为47个)作为输入参数提供给函数audioread,从而产生错误消息。

如果要单独访问每个.wav文件,则需要在从dir返回的结构中对它们进行索引,即,

代码语言:javascript
复制
for i=1:num_sounds;
    these_files = data_structure{i,2};
    for i=1:length(these_files)
        [y Fs] = audioread(these_files(i).name));
        % Do whatever needs to be done with y, Fs
    end
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55671704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档