精华内容
下载资源
问答
  • 将此函数放在您的 STARTUP.M 文件中很有用,因此您可以在启动 MATLAB 时自动将目录添加到您的路径中。 这样,即使您的目录结构发生了变化,您仍将包含所有 m 文件。 例子: AddRecursivePath('c:\dev\MATLAB');
  • 复制目录及其所有子目录中的所有文件,并将结果放在新文件夹中。 % [list,numfiles] = copyfile(ext,copypath,pastepath); % 由 Joseph Hollmann 撰写,2011 年 4 月% 创建用于从一个目录及其所有目录中复制...
  • 该函数从树的选定点开始并显示子目录的内容。 用户可以通过以下两种方式之一从列表中选择一个项目: - 输入显示名称之一,或- 粘贴并复制名称以进行提示。 还有另一种到达所需名称的方法 - 通过按任意键到提示直到...
  • matlab开发-选择路径和文件名。该函数允许浏览子目录树,并将选定的路径和文件名放入变量中。
  • %将所有一级子目录的目录名保存下来 end end end %if there are no folders that havenot searched yet,flag=0 so the loop %will be ended 当没有目录可遍历时,则查找结束 if ~length(folder) flag=0; end end ...

    function directories=findfiles(dire,ext)

    %the directory you want to find files

    %extension name of the files you want to find

    % dire=[matlabroot,filesep,'bin\win32'];

    % ext='dll';

    %check if the input and output is valid

    if ~isdir(dire)

    msgbox('The input isnot a valid directory','Warning','warn');

    return

    else

    if nargin==1

    ext='*';

    elseif nargin>2|nargin<1

    msgbox('1 or 2 inputs are required','Warning','warn');

    return

    end

    if nargout>1

    msgbox('Too many output arguments','Warning','warn');

    return

    end

    %containing the searching results

    D={};

    %create a txt file to save all the directory

    fout=fopen('direc.txt','w');

    %containing all the directories on the same class

    folder{1}=dire;

    flag=1; %1 when there are folders havenot be searched,0 otherwise

    while flag

    currfolders=folder;

    folder={};

    for m=1:1:length(currfolders)

    direc=currfolders{m};

    files=dir([direc,filesep,'*.',ext]);%当前目录下的ext文件

    %the number of *.ext files in the current searching folder

    L=length(files);

    num=length(D);

    for i=1:1:L

    temp=[direc,filesep,files(i).name];

    fprintf(fout,'%s\n',temp);

    D{num+1}=temp;

    num=num+1;

    end

    allfiles=dir(direc);%当前目录所有文件及子目录

    %the number of all the files in the current searching folder

    L=length(allfiles);

    %the number of folders to be searched on this class

    k=length(folder);

    for i=1:1:L

    if allfiles(i).isdir&(~strcmp(allfiles(i).name,'.'))&~strcmp(allfiles(i).name,'..')

    k=k+1;

    folder{k}=[direc,filesep,allfiles(i).name];%将所有一级子目录的目录名保存下来

    end

    end

    end

    %if there are no folders that havenot searched yet,flag=0 so the loop

    %will be ended 当没有目录可遍历时,则查找结束

    if ~length(folder)

    flag=0;

    end

    end

    fclose(fout);

    if nargout==1

    directories=D';

    end

    clear D fout folder flag currfolders m files L num temp allfiles k i direc

    end

    function [pathstruct,pathstr]=dirext(thepath,syntax)

    % 使用递归方法列出或查找指定目录下的文件

    % 可以使用dos命令得到相同的效果

    % [~,pathstruct]=system(['dir /B/S ', thepath])

    %

    % 输入参数

    % thepath:需要检索的目录

    % syntax:匹配语法,仅支持正则匹配

    % 正则语法 http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

    % .                    匹配除换行符以外的任意字符

    % \w            匹配字母或数字或下划线或汉字

    % \s                    匹配任意的空白符

    % \d                    匹配数字

    % \b                    匹配单词的开始或结束

    % ^                    匹配字符串的开始

    % $                    匹配字符串的结束

    % *                    重复零次或更多次

    % +                    重复一次或更多次

    % ?                    重复零次或一次

    % {n}                    重复n次

    % {n,}                    重复n次或更多次

    % {n,m}                    重复n到m次

    %

    % 输出参数

    % pathstruct: 检索到的目录,结构体数组,字段同于dir函数

    % pathstr: 所有文件和目录的列表

    %

    % 典型例子

    % thepath='C:\Users\dynamic\Documents';;

    % syntax='wav' % 查找所有wav文件

    % [pathstruct,pathstr]=dirext(thepath,syntax)

    %

    persistent list count

    if isempty(list)

    count=0;

    list=struct('name',[],'date',[],'bytes',[],'isdir',[],'datenum',[],'path',[]);%{thepath};

    else

    tmp=length(list);

    if count>0.8*tmp;

    list(2*tmp)=list(1);

    end

    end

    filesystem=dir(thepath);

    for i=1:length(filesystem)

    file=filesystem(i);

    name=file.name;

    type=file.isdir;

    if ~strcmpi(name,'.') && ~strcmpi(name,'..')

    count=count+1;

    nextpath=fullfile(thepath,name);

    file.path=nextpath;

    list(count)=file;

    if type

    dirext(nextpath);

    end

    end

    end

    pathstruct=list(1:count);

    if nargin==2

    listpath={pathstruct.path};

    flag=regexp(listpath,syntax);

    pathstruct=pathstruct(~cellfun(@isempty,flag));

    end

    pathstr={pathstruct.path}';

    %在网上找的两段代码,第一段代码逻辑比较清楚,第二段是利用循环调用,但是persistent list count 会导致count一直在内存中存在,故每运行一次,count会一直增加

    展开全文
  • 返回根路径的所有子目录路径
  • '‘当前工作目录’'也称为当前目录或当前文件夹,指的是matlab用来查找、打开、保存文件的位置,下图所示的就是当前工作目录。 1.查看当前工作目录: >> pwd %(print current working directory)显示当前...

    当前工作目录(current working directory)

    '‘当前工作目录’'也称为当前目录或当前文件夹,指的是matlab用来查找、打开、保存文件的位置,下图所示的就是当前工作目录。
    在这里插入图片描述

    1.查看当前工作目录:

    
    >> pwd %(print current working directory)显示当前工作目录
    
    ans =
    
    C:\Users\DZR\Desktop
    

    或者用cd

    >> cd 
    
    C:\Users\DZR\Desktop
    

    2.设置当前工作目录

    >> cd('C:\Users\DZR\Desktop\ccc') %设置当前工作目录为(C:\Users\DZR\Desktop\ccc)
    >> pwd
    
    ans =
    
    C:\Users\DZR\Desktop\ccc
    

    >> cd
    
    C:\Users\DZR\Desktop\ccc
    
    >> oldFolder = cd('C:\Users\DZR\Desktop') %将当前工作目录赋给oldFolder,并将(C:\Users\DZR\Desktop)设为新的当前工作目录
    
    oldFolder =
    
    C:\Users\DZR\Desktop\ccc
    
    >> cd
    
    C:\Users\DZR\Desktop
    

    3.改变当前工作目录到父文件夹或子文件夹

    >> cd
    
    C:\Users\DZR\Desktop\ccc
    
    >> cd ..\ %将当前工作目录移动到上一级,使用(..\..)往上移动两级
    >> cd
    
    C:\Users\DZR\Desktop
    

    >> cd
    
    C:\Users\DZR\Desktop
    
    >> cd ccc\SM %用相对路径将当前工作目录从(C:\Users\DZR\Desktop)变为(C:\Users\DZR\Desktop\ccc\SM)
    >> cd
    
    C:\Users\DZR\Desktop\ccc\SM
    

    搜索路径(search path)

    搜索路径是一些路径的集合,当matlab接收到一个命令时(假如是leinit),首先判断它(leinit)是否为一个变量;假如不是变量则判断它是否为一个常量;假如不是常量则判断它是否为当前工作路径中的M文件,假如不是当前工作路径中的M文件则判断它是否为搜索路径中的M文件,如果再不是的话就会报错。

    1.查看搜索路径

    >> path %显示搜索路径
    
    		MATLABPATH
    
    	C:\Users\DZR\Documents\MATLAB
    	D:\MATLAB R2016a\toolbox\matlab\datafun
    	D:\MATLAB R2016a\toolbox\matlab\datatypes
    	...
    

    2.添加新的搜索路径

    path(path,'C:\Users\DZR\Desktop') %将(C:\Users\DZR\Desktop)添加到搜索路径中(添加到末尾),如果(C:\Users\DZR\Desktop)已经在搜索路径,则此命令会将其从搜索路径中删除
    
    path('C:\Users\DZR\Desktop',path) %将(C:\Users\DZR\Desktop)添加到搜索路径中(添加到开头),如果(C:\Users\DZR\Desktop)已经在搜索路径,则此命令会将其从搜索路径中删除
    

    要说明的是每次关闭matlab再重新打开之后会恢复成默认的搜索路径,即之前添加的路径会消失,为了解决这个问题,我们可以添加上述命令到matlabrc.m中,因为matlab每次启动的时候会自动执行matlabrc.m这个文件。

    展开全文
  • 任何被忽略的目录(例如,'.svn' 和 'CVS' 如果使用版本控制)也不会添加其子目录。 这是一个快速、非常轻量且易于修改的函数,应该可以在任何平台上运行(未明确测试)。 我使用它来添加未存储在 MATLAB 的工具箱...
  • MATLAB 路径设置

    千次阅读 2018-06-04 15:17:48
    本篇记录本人使用Matlab时,涉及到的有关Matlab搜索路径设置的问题。Matlab的搜索路径MATLAB搜索路径的添加使用图形用户界面添加搜索路径使用命令添加搜索路径添加绝对路径添加相对路径MATLAB搜索路径的移除移除单个...

    本篇记录本人使用Matlab时,涉及到的有关Matlab搜索路径设置的问题。

    Matlab的搜索路径

    搜索路径(search path)或者路径是文件系统中所有文件夹的子集。Matlab搜索路径来高效的定位文件,且可以访问搜索路径里的任意文件。 
    搜索路径里文件夹的顺序很重要。当同名的文件出现在搜索路径上的多个文件夹时,Matlab使用最靠近搜索路径顶部(top)的文件夹里的那个文件。

    Matlab共有两种搜索路径

    • MATLAB提供的文件夹或者其它MathWorks产品 
      这些文件夹在 “matlabroot/toolbox“下, 使用matlabroot 可以查看该根目录.

    • MATLAB用户路径(userpath) 
      用户路径文件夹是存储那些MATLAB在启动时添加到搜索路径的文件.

    你可以把你要运行的文件夹添加到搜索路径. 
    类, 包, 和私有文件夹不再搜索路径上.

    MATLAB搜索路径的添加

    可以使用MATLAB图形交互界面添加, 也可以使用命令添加.

    使用图形用户界面添加搜索路径

    对于MATLAB2013及以上版本, 添加搜索路径的按钮在, Home 选项卡下的”Environment”下, 即下图中的Set Path 
    图2-1 找到 Set Path

    打开Set Path对话框, 如下: 
    图2-2 Set Path 对话框

    按照下图所示, 可以添加”DeepLearnToolbox-master”文件夹及其子文件夹到搜索路径. 
    图2-3 添加"DeepLearnToolbox-master"文件夹及其子文件夹到搜索路径

    下图给出了添加后的结果: 
    图2-4 "DeepLearnToolbox-master"文件夹及其子文件夹到搜索路径的结果

    使用命令添加搜索路径

    主要使用aadpath, 命令. 下面举例说明几个函数. 假设要添加”D:\Workspace\Matlab\DL\DeepLearnToolbox-master”文件夹及其子文件夹到搜索路径, 其目录结构如下图 
    图2-2 要添加的文件夹目录结构

    addpath即(Add folders to search path), 完成往搜索路径里添加文件的功能. 使用下面的命令仅仅将”DeepLearnToolbox-master”文件夹添加进搜索路径, 并未添加其子文件夹.

    addpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master');
    • 1

    如果想将该路径添加到搜索路径 , 那么可以使用下面的命令

    addpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master','-end');
    • 1

    添加绝对路径

    如上图所示, “DeepLearnToolbox-master”文件夹的子文件夹较多, 如果一一列举出来相当麻烦. 所以我们使用genpath自动生成路径, 如下

    genpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master')
    • 1

    结果输出:

    ans =

    D:\Workspace\Matlab\DL\DeepLearnToolbox-master;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\CAE;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\CNN;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\DBN;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\NN;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\SAE;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\data;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\tests;D:\Workspace\Matlab\DL\DeepLearnToolbox-master\util;

    可以看出, genpath命令生成了 “DeepLearnToolbox-master”文件夹及其子文件夹的所有路径. 
    所以将 “DeepLearnToolbox-master”文件夹及其子文件夹添加到搜索路径的命令是:

    addpath(genpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master'));
    • 1

    这样, 你就可以在任何地方, 访问”DeepLearnToolbox-master”里的任意资源了, 这就是绝对路径的好处.

    添加相对路径

    也许你看到了 “DeepLearnToolbox-master”文件夹中的”README.md”文件, 是的这是一个使用说明文件, “DeepLearnToolbox-master”是一个MATLAB版工具箱, “README.md”文件就是介绍其功能及使用的. 也许你会看到文件”README.md”里说使用下面的命令添加搜索路径.

    addpath(genpath('DeepLearnToolbox'));
    • 1

    是的, 那么会有什么不同呢? 我们把当前工作路径切换到”DL”文件夹下 (注意, 之前我们并没有强调, 那是因为不需要, 但现在需要了, 否则, 下面的命令将返回空, 这是因为MATLAB找不到”DeepLearnToolbox-master”文件夹) , 然后在MATLAB命令窗口输入genpath('DeepLearnToolbox'), 发现返回值是:

    ans =

    DeepLearnToolbox-master;DeepLearnToolbox-master\CAE;DeepLearnToolbox-master\CNN;DeepLearnToolbox-master\DBN;DeepLearnToolbox-master\NN;DeepLearnToolbox-master\SAE;DeepLearnToolbox-master\data;DeepLearnToolbox-master\tests;DeepLearnToolbox-master\util;

    可以看到路径个数一样, 只是”变短了”. 是的, 这是相对路径 (是相对于”DL”文件夹所在路径而言的, 而之前那个是绝对路径), 所以如果访问和使用”DeepLearnToolbox-master”工具包中的任意资源的话, 要把当前工作路径切换到”DL”文件夹下. 比如, 你想运行”DeepLearnToolbox-master”中”tests”下的测试示例, 那么你需要在把当前工作路径切换到”DL”文件夹下(而不是”tests”文件夹下), 否则, 会找不到调用的其它资源.

    MATLAB搜索路径的移除

    使用MATLAB图形用户界面操作, 很容易移除路径, 这里不介绍. MATLAB也提供了rmpath用于移除搜索路径.下面做一下简介:

    移除单个路径

    如果仅仅想移除单个路径, 如:”DeepLearnToolbox-master”文件夹.

    • 对于绝对路径, 那么只需输入下面的命令
    rmpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master')
    • 1
    • 对于相对路径, 那么需输入下面的命令, 否则, 提示找不到.
    rmpath('DeepLearnToolbox-master')
    • 1

    移除多个路径

    如果想移除多个搜索路径呢, 如:”DeepLearnToolbox-master”文件夹及其子文件夹, 这里依然借助genpath.

    • 对于绝对路径, 那么只需输入下面的命令
    rmpath(genpath('D:\Workspace\Matlab\DL\DeepLearnToolbox-master'))
    • 1
    • 对于相对路径, 那么需输入下面的命令
    rmpath(genpath('DeepLearnToolbox-master'))
    • 1

    还有一种方法

    修改pathdef.m文件!

    到你的MATLAB安装目录中依次找到toolbox -> local -> pathdef.m文件,如下: 
    pathdef.m

    直接删除你不要的路径即可。

    这种方法在下面这种情况下很有帮助:当你打开MATLAB窗口时,命令窗口提示一堆Warning,说某某路径不存在或者不是路径(”Warning: Name is nonexistent or not a directory: “),如下图所示: 
    路径不存在提示

    这往往是由于你移动了文件夹或者重命名了文件夹而致(比如我删除了sd显著性检测文件夹),而这个时候你打开Set PathHome -> Set Path)窗口并没有看到这些路径,是不是很奇怪,其实不奇怪,路径不存在添加进去也没有,所以就不添加了。

    解决办法就是修改上述pathdef.m文件,打开后,你会发现文件里依然保留着那些不存在的路径,删掉即可;当然也可以把文件夹命名回来,或移动回来。

    哈哈,就这些吧!


    展开全文
  • 此函数生成所有文件,包括在指定目录上具有完整扩展名的文件夹路径。 genallfullfilepath(原始路径,文件扩展) 所有参数必须是字符数组或字符串。 由于正则表达式,它与 matlab 编码器不兼容。
  • matlab开发-父路径返回路径共享的多个子路径。返回由多个子路径共享的文件系统路径
  • addpath 添加从某个给定目录开始的路径,以及递归地添加该目录的所有子目录。 添加路径的可读列表可用。包含在启动功能中时非常有用。
  • 此代码会将某个基本文件夹中的每个文件夹添加到搜索路径。 此代码可用于导入保存在不同文件夹中的文件,而无需确切知道文件保存在哪个文件夹中。
  • Matlab 如何查找当前路径下文件夹

    千次阅读 2021-04-18 15:07:35
    在数据处理中难免会碰到一些整理狂魔,一个被试一个文件夹,这整理起来可不容易,这时候需要一个函数来获得某个路径下所有文件夹这里可以新建一个函数实现相关功能点击new ->function,创建函数文件:function ...

    在数据处理中难免会碰到一些整理狂魔,一个被试一个文件夹,这整理起来可不容易,这时候需要一个函数来获得某个路径下所有子文件夹

    这里可以新建一个函数实现相关功能

    点击new ->function,创建函数文件:

    function [ VecFolders ] = FindFolders( InputDir,IsReturnNameOnly )

    %查找当前路径下所有文件夹

    %查找当前路径下所有文件夹

    %InputDir: 输入路径

    %IsReturnNameOnly:是否只返回文件夹名,1:全路径名,0:只返回文件夹名

    %VecFolders:输出文件夹列表

    %check当前路径是否合法

    if ~isdir(InputDir)

    msgbox('The input isnot a valid directory','Warning','warn');

    return

    else

    if nargin == 1

    IsReturnNameOnly = 1;

    elseif nargin>2||nargin<1

    msgbox('1 or 2 inputs are required','Warning','warn');

    return

    end

    if nargout>1

    msgbox('Too many output arguments','Warning','warn');

    return

    end

    end

    %初始化文件夹列表

    folders = {};

    %查找当前路径下所有文件

    files = dir(InputDir);

    m = length(files);

    %check是否为文件夹,如是则存入vector

    num = 0;

    for i =1:1:m

    %排除.和..

    if ~(strcmp(files(i).name,'.')||strcmp(files(i).name,'..'))

    tmp = files(i).name;

    if files(i).isdir %判断是否为文件夹

    num = num + 1;

    if IsReturnNameOnly %返回文件夹列表

    folders{num} = tmp;

    else %返回文件夹全路径列表

    tmp = fullfile(InputDir,tmp);

    folders{num} = tmp;

    end

    end

    end

    end

    %赋值到返回变量VecFolders

    if nargout==1

    VecFolders = folders';

    end

    end

    调用示例如下

    clc;

    clear;

    path = 'E:\';

    a = FindFolders(path,0);

    展开全文
  • matlab 加载全部文件夹到工作路径

    千次阅读 2018-06-15 17:44:42
    matlab 加载全部文件夹到工作路径 调用pwd Identify current folder 调用genpath 和 addpath currentPath = pwd; addpath(genpath(currentPath));
  • 封装的工具getdir(),目的读取指定$path下目录及子目录下所有文件路径,保存在array()中
  • MATLAB设置当前工作目录

    万次阅读 2018-08-29 10:09:54
      在MATLAB界面的地址栏中的地址,就是代表当前的运行工作目录, 在命令行窗口中输入cd,敲击回车也可以查到当前的工作路径,是和地址栏中...或者在命令行窗口中输入pathtool,敲击回车,接着会弹出设置路径的窗...
  • 一个简单的函数,它检查一个字符串并返回一个简单的目录列表; 不对子目录字符串进行... #28442 - 目录到单元格#1570 - 目录#1492 - 子目录#3226 - 递归目录列表增强型 RDIR #12180 - 文件系列#28249 - 获取完整路径
  • function [files] = ALLfile(inputdir) files=cell(0); dirs = dir(inputdir); for i=1:length(dirs) if strcmp(dirs(i).name,'.')==1||strcmp(dirs(i).name,'..')==1 continue; else if(dirs(i).isdir==1) ...
  • 在写matlab的过程中,我们不但需要将当前搜索路径改为所在工程的文件路径;当需要调用其他包package时,我们还需要将使用的包的路径也填加到当前的搜索路径中。 本文主要介绍两种方法来向当前搜索路径添加文件夹和...
  • Matlab: 路径的操作

    2021-04-23 14:32:53
    添加相对路径matlab中当代码很多时常常将结果存在不同的文件夹下面,常常使用相对路径对函数进行调用,但有时会存在问题。举个栗子:代码结构如下:/codes/A/AA/code1.m/codes/A/lib_A/lib1.m/codes/B/BB/code2.m/...
  • addpath(genpath(pwd));
  • Matlab 路径函数

    2021-04-20 06:01:55
    目前内容:**fileparts / mfilename / fulfile / genpath / addpath **fileparts***[pathstr,name,ext] = fileparts(filename) ***将filename字符串分解成路径,文件名和文件后缀。文件可以不存在,ext中含有前缀dot...
  • MATLAB R2012a 的当前路径路径搜索

    千次阅读 2021-04-18 15:07:39
    1.3.1 MATLAB R2012a 的当前路径查看MATLAB 当前路径的方式有两种:查看工具栏中的当前路径栏,或者在命令窗口中输入查看命令,如下所示。>> cdD:\Program Files\MATLAB\R2012a\bin用户可以通过工具栏中的当前...
  • addpath(genpath('路径名')); 重点在于genpath,记得要加上~
  • addpath(genpath('要添加的目录/'))
  • 文件夹Output下面有output1,output2,output3三个文件夹,每个文件夹下面有若干文件夹,名字不按顺序 for i=1:3 maindir = strcat('/home/jinbeibei/Di-Tech/Output/output',sprintf('%d',i)) subdir=dir...
  • MATLAB从 添加文件路径到工作空间

    千次阅读 2018-12-13 10:39:42
    其中,genpath是生成文件路径的函数,该路径包括当前路径下所有的文件和文件夹路径,或者,还可以这样—— addpath(genpath(pwd)); 可以在自己的工程中的根目录写入该语句,使每次打开MATLAB都能把所需的文件加入...
  • matlab工作路径

    千次阅读 2020-07-01 11:27:38
    MATLAB界面的地址栏中的地址,就是代表当前的运行工作目录, 在命令行窗口中输入cd,敲击回车也可以查到当前的工作路径,是和地址栏中的 路径一致的 修改工作路径的格式命令如下cd(‘需要设定为工作路径的地址’)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,875
精华内容 1,950
关键字:

matlab设置子目录路径

matlab 订阅