Matlab中dir使用中遇到的一些问题

在Matlab编程中,使用dir函数读取文件夹内容时,发现它会将当前目录'. '和上级目录'..'一并读取,导致audioread无法处理。为解决此问题,可以在获取dir结果后,利用isdir字段筛选出文件,并创建新的struct排除目录。需要注意的是,由于某些特殊情况,'..'的isdir可能为0,需要额外判断。
摘要由CSDN通过智能技术生成

今天调程序时遇到一个bug 感觉有点意思 也许有人会遇到类似的问题吧

问题

说手上有一段代码 原本是希望在一个文件夹中读取出其中所有音频文件的

tdir=dir(fullfile(SoundDir,SoundFileName));
NumSounds=length(tdir);
[NameSounds{
   1:NumSounds}]=deal(tdir.name);

%%%%%此处省略X行%%%%%

[Signal.yy, Signal.Fs] = audioread(fullfile(SoundDir,NameSounds{soundI}));

跑到这崩溃了 回头一看原因笑了:dir把当前目录’.’和上级目录’..’都读出来了(当然,也有当前目录里的其他目录) 这些目录audioread肯定处理不了

解决

好吧 那就在dir得到tdir之后把其中文件夹的字段都删除掉好了

但是dir返回的是一个N*1的struct 这是一个栗子

>>s 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值