You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab如何提取指定文件夹中CSV文件的文件名并转为字符串数组?

解决Matlab从dir结构体数组提取文件名的问题

嘿,我来帮你搞定这个Matlab里的小问题!你用dir函数拿到的确实是结构体数组,不过提取文件名到字符串数组其实很简单,我一步步给你讲:

第一步:获取文件列表并过滤掉目录

dir('MyFolder')返回的结构体数组里,每个元素都包含name(文件名)、isdir(是否是目录)这些字段。前两个元素默认是.(当前目录)和..(上级目录),所以我们可以直接过滤掉所有目录项,这样比硬取第3行之后更稳妥:

% 获取目标文件夹的所有项目
file_list = dir('MyFolder');
% 过滤掉所有目录(包括.和..),只保留文件
file_list = file_list(~[file_list.isdir]);

第二步:提取文件名到字符串数组

现在file_list里都是文件的结构体了,我们只需要把每个结构体的name字段提取出来,转换成字符串数组就行。Matlab R2016b及以后支持原生字符串数组,用下面的代码:

% 先把name字段转成元胞数组,再转成字符串数组
file_names = string({file_list.name});

如果你的Matlab版本比较老,不支持字符串数组,直接用元胞数组也能满足需求:

file_names = {file_list.name};

更高效的小技巧:直接筛选.csv文件

既然你要处理的是.csv文件,其实可以在dir里直接指定文件类型,这样就不用额外过滤了,一步到位:

% 只获取MyFolder里的所有.csv文件
file_list = dir('MyFolder/*.csv');
% 提取文件名到字符串数组
file_names = string({file_list.name});

这样file_names就是你需要的、包含所有目标.csv文件名的字符串数组,直接用来后续读取和绘制数据就好啦!

内容的提问来源于stack exchange,提问作者Julio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:47:32