读取文件夹下的所有文件,根据文件名中包含的内容进行分类,将不同的分类写入到不同的文件夹下
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` 函数中的变量名,以避免变量名冲突。