MATLAB获取一个目录中的所有文件

问题:在一个目录中,有一系列需要分析的文件,这些文件的名字都是数值,如距离值(0.1, 0.2, ... , 10.0),再加上一个后缀(.txt, .dat等)。 在分析数据的时候需要这些文件按文件名的数值排序,方便找规律。

代码

 1 % 文件目录名, 里面必须全部是数据文件, 且文件名字必须是距离数值
 2 file_dirname = ‘E:\data\‘;
 3
 4 % 文件目录
 5 file_dir = dir(file_dirname);
 6 file_dir(1:2) = []; % 去掉目录"."和".."
 7
 8 % 文件数量
 9 file_nums = length(file_dir);
10
11 % 文件序列
12 %   第1列 - file_dir
13 %   第2列 - 距离数值
14 %   第3列 - 文件名(无后缀)
15 % 注意: 此时文件序列可能并非按距离大小排列
16 for i = 1 : file_nums
17     [path, name, ext] = fileparts(file_dir(i).name);
18     file_seq{i, 1} = file_dir(i);
19     file_seq{i, 2} = str2double(name);
20     file_seq{i, 3} = name;
21 end
22
23 % 将文件序列按距离大小排序
24 file_seq = sortrows(file_seq, 2);
25
26 % 读取数据
27 for i = 1 : file_nums
28     data{i} = importdata([file_dirname, file_seq{i, 1}.name], ‘r‘);
29 end

 结果

目录"E:\data\"下的文件如下图:

程序执行后,变量file_seq为:

其中,file_seq{1, 1}的内容为:

时间: 2024-10-10 21:32:51

MATLAB获取一个目录中的所有文件的相关文章

FileDemo4~5 获取一个目录中的所有子项/部分子项

FileDemo4 获取一个目录中的所有子项 /** *    获取一个目录中的所有子项 *    方法:    File[] listFiles() *    重载方法: File[] listFiles(FileFilter filter) */ public class FileDemo4 { public static void main(String[] args) { /* * 获取files目录中的所有内容 */ File dir = new File("."+File.

JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件

package ioTest.io3; import java.io.File; /* * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 . * 并将文件夹和文件名称打印在控制台上面.并且要显示文件目录的层级 * 注:运用了递归的算法. */ public class FileDemo3 { public static void main(String[] args) { File dir=new File("F:\\黑马学习日程\\"); //File dir=new Fi

列出一个目录中的所有文件

file/ls1.c 1 #include "apue.h" 2 #include <dirent.h> 3 int 4 main(int argc, char *argv[]) 5 { 6 DIR *dp; 7 struct dirent *dirp; 8 if (argc != 2) 9 err_quit("usage: ls directory_name"); 10 if ((dp = opendir(argv[1])) == NULL) 11 e

获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中)

import java.io.File; import java.io.FileFilter; import java.io.ObjectInputStream.GetField; import java.util.ArrayList; import java.util.List; public class huoquwenjian { /*获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中) * 思路: * 1,既然包含子目录,就需要递归. * 2

Linux rm(删除一个目录中的一个或多个文件或目录或删除非空目录)

rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑. 命令格式: rm [选项] 文件- 命令功能: 删除一个目录中的一个或多个文件或目录,如

linux复制指定目录下的全部文件到另一个目录中

linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了如果dir2目录不存在,则可以直接使用cp -r dir1 dir2即可.如果dir2目录已存在,则需要使用cp -r dir1/. dir2如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求.ps:di

将一个目录中所有PDF文件合并到一个新的PDF文件中

将一个目录中所有PDF文件合并到一个新的PDF文件中 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System;using System.Collections.Generic;using System.Text;using Syst

统计一个目录下所有普通文件的总行数

1. 统计一个目录下所有普通文件的总行数 #实用场景:毕业设计时,需要统计自己的代码行数# 方案一:find . -type f -name "*.c" -exec cat {} \; | grep -v '^$' | wc -l 解释:find . -type f -name "*.c" 查找当前目录下所有以.c结尾的文件,如果不考虑文件类型,可以直接实用find . -type f即可. -exec cat {} \; 是将找到的文件采用cat命令输出; gre

[Perl系列—] 1. 清空目录及目录中的所有文件

Perl 删除单个文件和目录 Perl 删除单个文件的语法是: unlink 举例来说, 删除 D 盘 temp 目录下的 test.txt 的写法就是: unlink "D:/temp/test.txt" 如果要删除这个目录中所有的文件的话(不包含子目录) unlink glob "D:/temp/*" Perl 删除单个目录的语法是:  rm 类似, 删除上面的temp 目录的写法就可以是: rmdir "D:/temp" 看起来很简单, 但