读取文件夹下的所有文件,根据文件名中包含的内容进行分类,将不同的分类写入到不同的文件夹下

1.直接读取文件,根据文件名分类,不做任何处理,使用copyfile

%% 将数据按照不同泳姿分类,不作其他处理
function ClassificationTxt()
[filename, pathname] = uigetfile('*.*', '选择数据文件','MultiSelect', 'on'); %选择文件
list = dir([pathname,'*.txt']);
list_len = length(list);
for i =1:list_len
    filename = list(i).name; 
    file_dir= fullfile(pathname, filename);
    if contains(file_dir, {'1'})
        src_dir ='data\分类\1';
        wfilename=fullfile(src_dir, filename);
        copyfile(file_dir, wfilename);
    elseif contains(file_dir, {'2','二'})
        src_dir ='data\分类\2';
        wfilename=fullfile(src_dir, filename);
        copyfile(file_dir, wfilename);
    elseif contains(file_dir, {'3'})
        src_dir ='data\分类\2';
        wfilename=fullfile(src_dir, filename);
        copyfile(file_dir, wfilename);
    elseif contains(file_dir, {'4'})
        src_dir ='data\分类\4';
        wfilename=fullfile(src_dir, filename);
        copyfile(file_dir, wfilename);
        src_dir ='bohai0608\data\分类\其他';
        wfilename=fullfile(src_dir, filename);
        copyfile(file_dir, wfilename);

2.读取其中的文件内容,处理后再次写入,使用fprintf

function Data = read_Data( )
[filename, pathname] = uigetfile('*.*', '选择数据文件','MultiSelect', 'on'); %选择文件
list = dir([pathname,'*.txt']);
list_len = length(list);
for i =1:list_len
    filename = list(i).name; 
    file_dir= fullfile(pathname, filename);
    % 读取三轴数据数据
    fid = fopen(file_dir);
    Data = textscan(fid,'%d %d %d %s','HeaderLines', 1, 'Delimiter', ','); %跳过首行,设置风格符为逗号
    fclose(fid);
    % 将数据放一起
    Data = [Data{1},Data{2},Data{3}];
    Data = double(accData);
    Data = accData(1:2:end); % 降频
    if contains(file_dir, {'数据1'})
        src_dir ='data\分类\数据1';
        wfilename=fullfile(src_dir, filename);
        fiw = fopen(wfilename, 'w');
        fprintf(fiw, '%f ', accData);
        fclose(fiw);
    elseif contains(file_dir, {'数据2'})
        src_dir ='data\分类\数据二';
        wfilename=fullfile(src_dir, filename);
        fiw = fopen(wfilename, 'w');
        fprintf(fiw, '%f ', accData);
        fclose(fiw);
    elseif contains(file_dir, {'数据3','数据三'})
        src_dir ='data\分类\数据3';
        wfilename=fullfile(src_dir, filename);
        fiw = fopen(wfilename, 'w');
        fprintf(fiw, '%f ', accData);
        fclose(fiw);
    elseif contains(file_dir, {'数据4'}) 
        src_dir ='data\分类\数据4';
        wfilename=fullfile(src_dir, filename);
        fiw = fopen(wfilename, 'w');
        fprintf(fiw, '%f ', accData);
        fclose(fiw);
        src_dir ='data\分类\其他';
        wfilename=fullfile(src_dir, filename);
        fiw = fopen(wfilename, 'w');
        fprintf(fiw, '%f ', accData);
        fclose(fiw);

直接使用fprintf()一次性将数组的数据都写入其中,'%f ',有一个空格;若是需要换行,需要将数据一行一行的写入。

读取文件夹下的所有文件,根据文件名中包含的内容进行分类,将不同的分类写入到不同的文件夹下function Data = read_Data( )[filename, pathname] = uigetfile('*.*', '选择数据文件','MultiSelect', 'on'); %选择文件list = dir([pathname,'*.txt']);list_len = length(list);for i =1:list_len filename = list(i).name
mex_wav_writer 这可以为 Octave 和 Matlab 编译,尽管目前只为 Octave 设置 ==== 从八度打开并将“浮点”数据写入单通道浮点 .wav 文件 所有 .wav 文件都有 32 位浮点数据和只有 1 个通道 具有特定文件名的第一次调用将打开文件并将音频数据写入, 后续将只写入音频数据, 在八度关闭时,.wav 文件将被关闭 也可以通过将采样率设置为负数来关闭文件 这需要mex-it库、c++11 编译器、 octave和cmake 例如像这样打电话 wav_writer('test.wav', 48000, float_data) 从 'test.wav' wav_reader('test.wav', 16)读取 16 个样本 比较 2 个 .wav 文件(仅数据部分) wav_compare('t1.wav','t2.wav')
a = ones(4000,6);%定义变量 pm3_1=dir('C:\Users\add oil\Desktop\数据\pm3_1\*.txt'); %根据文件夹文件格式,选择读取类型 n = length(pm3_1); %%数组大小 full_data = cell(n,1);%%生成n*1的元胞 for k=1:n filename = ['C:\Users\add oil\Desk...
函数列表 = mmwrite(filename,...options...) mmwrite 能够写入 AVI、WMV、WMA、ASF 文件。 对于 AVI 文件,您可以从可用的编解码器进行选择以压缩音频和视频流。 对于 WMV、WMA 和 ASF,编码默认为 Windows Media 9 44100Hz 16 位立体声 98% 质量的音频和 Windows Media 9 Video with 98 质量。 可以为音频和视频指定质量。 环绕声似乎只适用于 AVI,不支持多通道编码。 不支持写入任何其他文件类型。 这使用 Windows DirectX 基础结构,因此其他操作系统不走运。 输入: 文件名:这必须是第一个参数并指定要写入文件名。 视频结构:视频结构匹配mmread的输出。 至少它必须有 4 个字段“帧”、“时间”、“高度”和“宽度”。 “frames”字段必须是
三个函数搞定一切 XML格式的问题现在很流行,它往往用作数据存储文件,或者是参数配置文件,我们需要做的有两件事情,从XML文件读取数据,以及把数据储存到XML文件去。 Matlab使用JAVA虚拟机来处理XML文件,默认给出了三个用于处理XML的函数: l xmlread(), 用于读取XML文件内容,读入后的变量是一个Java XML object。 l xmlwrite(), 用于写入XML文件内容,同样输出变量也要是一个Java XML Object。 l xslt(),用于stylesheet转换的问题,所以就没有关系。 前面两个函数用的比较多,调用格式很简单。 xDoc=xmlread(文件名) %读取xml文件 xmlwrite(文件名, xDoc) %写如XML文件,如果取消文件名,那么就直接显示xml文件内容。 读取和写入一个 Matlab自带了一个叫做 info.xml 的文件,就用下面这两个函数做个简单的测试。 xmlfile = fullfile(matlab
start_path = 'C:\'; % 设置默认文件夹 folder_path = uigetdir(start_path, 'select a folder:'); % 通过UI界面选择想要读取的文件夹 file_list = dir(folder_pat
做毕设时用到的函数,在这里记录一下,方便以后回忆用法 dir()函数用于获得指定文件夹所有的文件文件,并存放在在一种为文件结构体数组. help dir dir List directory. dir directory_name lists the files in a directory. Pathnames and wildcards may be used. For exampl...
dirList = dir(strPath); isSubDir = [dirList(:).isdir]; %# returns logical vector nameFolds = {dirList(isSubDir).name}'; nameFolds(ismember(nameFolds,{'.','..'})) = []; nSubDir=length(nameFolds); fileList=dir(fullfile(strcat(strPath,nameF
MATLAB遍历文件夹及其下文件以前从未遇到过用MATLAB批处理文件的情况,此次项目需要批量将二进制数据文件导入matlab进行svm分类,将matlab遍历文件夹及其文件的方法记录下来。文件目录结构/maindir |-- subdir1 |-- datafile1.dat |-- datafile2.dat |-- subdir2
在上面的代码,首先我们需要指定要读取的文件夹路径 `folderPath`,然后使用 `dir` 函数获取文件夹的所有文件。接着我们使用 `readmatrix` 函数逐一读取文件数据,并使用 `assignin` 函数将数据写入MATLAB 工作区。 需要注意的是,如果文件夹包含多个文件,我们可以按照需要修改 `assignin` 函数的变量名,以避免变量名冲突。