我是靠谱客的博主 积极口红,最近开发中收集的这篇文章主要介绍matlab深度遍历程序,Matlab对文件夹的层次遍历和深度遍历,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近做一个项目,由于数据分别放在不同的文件夹中,对大量数据文件“打开->复制->粘贴”,觉得很费事,于是就写了对基于Matlab的文件夹遍历。文价夹遍历有两种方式,即层次遍历和深度遍历。个人比较倾向用层次遍历的方法,因为深度遍历要用到递归,当文件目录比较深的时候可能会出现栈溢出的现象(当然这只是个极端的情况),而且必须要做成一个函数,若需要记录每个文件的路径,就比较麻烦!而层次遍历思路相对简单,易于理解。废话不多说,直接贴上代码:

1、基于matlab的深度优先遍历:

function RenameFile( strPath )

path=strPath;

Files = dir(fullfile( path,'*.*'));

LengthFiles = length(Files);

for iCount = 1:LengthFiles    % 判断是否是文件夹

name = Files(iCount).name;

if name=='.'

continue;

end

s = [path  name '/'];        %遍历文件

Folders = dir(fullfile( s,'*.*'));

Length= length(Folders);

for iCount = 1:Length;

if strcmp(Folders(iCount).name, '.') | ...

strcmp(Folders(iCount).name, '..')

continue;

end

%对文件进行操作

Folders(iCount).name

end

end

end

2、基于Matlab的层次遍历(广度优先遍历):

%定义两数组,分别保存文件和路径

mFiles = cell(0,0);

mPath  = cell(0,0);

mPath{1}='./';

[r,c] = size(mPath);

while c ~= 0

strPath = mPath{1};

Files = dir(fullfile( strPath,'*.*'));

LengthFiles = length(Files);

if LengthFiles == 0

break;

end

mPath(1)=[];

iCount = 1;

while LengthFiles>0

if Files(iCount).isdir==1

if Files(iCount).name ~='.'

filePath = [strPath  Files(iCount).name '/'];

[r,c] = size(mPath);

mPath{c+1}= filePath;

end

else

filePath = [strPath  Files(iCount).name];

[row,col] = size(mFiles);

mFiles{col+1}=filePath;

end

LengthFiles = LengthFiles-1;

iCount = iCount+1;

end

[r,c] = size(mPath);

end

Linux Matlab服务器进一步改造成Application Server(应用程序服务器) http://www.linuxidc.com/Linux/2014-09/106340.htm

0b1331709591d260c1c78e86d0c51c18.png

最后

以上就是积极口红为你收集整理的matlab深度遍历程序,Matlab对文件夹的层次遍历和深度遍历的全部内容,希望文章能够帮你解决matlab深度遍历程序,Matlab对文件夹的层次遍历和深度遍历所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部