![MATLAB 2020数学计算从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/840/43806840/b_43806840.jpg)
2.1 文件路径
任何一个文件的操作(如文件的打开、创建、读写、删除、复制等),都需要确定文件在磁盘中的位置。MATLAB与C语言一样,也是通过文件路径(文件夹位置)来定位文件的。不同的操作系统对路径的格式有不同的规定,但大多数的操作系统都支持树状目录结构,即有一个根目录(Root),在根目录下,可以存在文件和子目录(Sub Directory),子目录下又可以包含各级子目录及文件。
路径下的实际目录取决于文件的格式。
在Windows系统下,一个有效的路径格式如下。
drive:\<dir…>\<file or dir>
其中,<drive:>是文件所在的逻辑驱动器盘符,<dir…>是文件或目录所在的各级子目录,<file or dir>是所要操作的文件或目录名。MATLAB的路径输入必须满足这种格式要求。
当前文件夹是MATLAB用于查找文件的参考位置。该文件夹也可称为当前目录、当前工作文件夹或现有工作目录。
在MATLAB中,除了可以利用“当前文件夹”工具栏查看当前文件夹外,还可以执行命令,更改或显示当前文件夹。
1.显示搜索路径
MATLAB的操作是在它的搜索路径(包括当前路径)中进行的,如果调用的函数在搜索路径之外,MATLAB就会认为该函数不存在。初学者往往会遇到这种问题,明明自己编写的函数在某个路径下,但MATLAB却报告此函数不存在。其实只要把程序所在的目录扩展成为MATLAB的搜索路径就可以了。
搜索路径是文件系统中所有文件夹的子集。MATLAB使用搜索路径来高效地定位用于Math-Works产品的文件。
默认的MATLAB搜索路径是MATLAB的主安装目录和所有工具箱的目录,用户可以通过以下几种形式查看搜索路径。
1)在MATLAB中,path命令用于文件的搜索路径,该命令的使用格式见表2-1。
表2-1 path命令的使用格式
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/44_01.jpg?sign=1739424771-ndUwqV7EZAkBgpOBdqORx4YPb4SEfreO-0-8cb7cc3602b30fa69c6605bfab6587b2)
例2-1: 显示MATLAB下的搜索路径。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/44_02.jpg?sign=1739424771-kJqWS6ZY59nHV7GPju78djKwDcQJxp3N-0-e43c166e2cb5dac913356962d4748ef6)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/44_03.jpg?sign=1739424771-bwJsYzxnXqJFiyyGOyHLCsfyWUgJHvLy-0-65379098dbe331d247c19d4d598ce881)
2)在命令窗口输入命令pathtool进入搜索路径设置对话框,如图2-1所示。单击“添加文件夹”按钮,或者单击“添加并包含子文件夹”按钮,进入文件夹浏览对话框。前者只把某一目录下的文件包含进搜索范围而忽略子目录,后者将子目录也包含进来。最好选择后者以避免一些可能的错误。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/44_04.jpg?sign=1739424771-Yobr24xIHKqbuaQrRCVmww3jeWAHxQwO-0-43c2b306fec23ee30751ed932628e77e)
图2-1 “设置路径”对话框
在文件夹浏览对话框中,选择一个已存在的文件夹,或者新建一个文件夹,然后在“设置路径”对话框中单击“保存”按钮就将该文件夹保存进搜索路径了。
在MATLAB中,userpath命令用于查看或更改默认用户工作文件夹,该命令的使用格式见表2-2。
表2-2 userpath命令的使用格式
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/45_01.jpg?sign=1739424771-BcDdGIqQMsrhdHIvatLsYcGVpiYZ4ZA6-0-cc2b7a665f6a7f8cf4086591041c7db1)
例2-2: 查看userpath文件夹。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/45_02.jpg?sign=1739424771-n1na6Ptm3ThBSAr3Kgg4lFi37CjTWGX3-0-1d01411c08736346db0066c2b21934ce)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/45_03.jpg?sign=1739424771-YGsFoylAsdno1ih1No539Ivi97pDztx9-0-9e64fb9b15e01e70969b9ddbadb3c47a)
在MATLAB中,pathsep命令用于显示带分隔符的搜索路径,该命令的使用格式见表2-3。
表2-3 pathsep命令的使用格式
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/45_04.jpg?sign=1739424771-JZmVZwaCmyJBGlOyFSOJafVcCTD9Fg3j-0-e31c613339229833c7f6ca6fde78d473)
2.搜索路径文件夹
搜索路径上的文件夹顺序十分重要。当在搜索路径上的多个文件夹中出现同名文件时,MAT-LAB将使用搜索路径中最靠前的文件夹中的文件。
在MATLAB中,addpath命令用于从搜索路径中添加文件夹,不仅可以添加搜索目录,还可以设置新目录的位置。该命令的使用格式见表2-4。
表2-4 addpath命令的使用格式
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/45_05.jpg?sign=1739424771-EFPJfJkcQtQZqHRcAHVNjHRI8dLnbKkm-0-eb0ab8f9447d4dcd9c6d7b84b7b93886)
例2-3: 添加新的搜索路径。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/46_01.jpg?sign=1739424771-KOPuBrsCNhHONmyRMVZp3JSs9LJ5Rwjt-0-e8a3812fe6bdbc99b9e6573ae77384fb)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/46_02.jpg?sign=1739424771-dttiGXhMk9XUXnzAg57s3UmF8f9tYBdp-0-ac05323a40b9d49146809aed2e1a3df6)
在MATLAB中,savepath命令用于保存当前搜索路径,该命令的使用格式见表2-5。
表2-5 savepath命令的使用格式
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/46_03.jpg?sign=1739424771-jidDgS5HMlweaTyYgdv7Bz9ly6Rzc7wi-0-8e889077a31e9faebaea27123f0721e4)
在MATLAB中,rmpath命令用于从搜索路径中删除文件夹,该命令的使用格式见表2-6。
表2-6 rmpath命令的使用格式
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/46_04.jpg?sign=1739424771-skRbPst4pC3ADF1Y5QlzNTrI0uqT5OUK-0-5b7da35233bd1ebf651f6ba42d5efdec)
例2-4: 从搜索路径中删除文件夹。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/46_05.jpg?sign=1739424771-wSgURztSzVTWNLl2Kvv7yO2cEsn57pPQ-0-e3c0c3359e658771b6f38aac39a59ae9)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/46_06.jpg?sign=1739424771-OqxgMXi2RYTmRZ7b2q5SsiOwvo9L5NfW-0-0da7cfe5d0e89baf189a2c5418a6716f)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/47_01.jpg?sign=1739424771-flw4lIfaDrjvJ7u6OIB4Cvt98ADLfISi-0-04b5bfcbbb78142b0c55c547891dee54)
在MATLAB中,genpath命令用于生成路径名称,输出由MATLAB所有搜索路径连接而成的长字符串,该命令的使用格式见表2-7。
表2-7 genpath命令的使用格式
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/47_02.jpg?sign=1739424771-lt8haUqEV7knFTKIZBrenaElCy5iG88G-0-4047e6fada3d939a8c02679c7a49a96b)
3.确定文件和文件夹是否在搜索路径下
在MATLAB中,what命令列出当前文件夹的路径以及在当前文件夹中找到的与MATLAB相关的所有文件和文件夹。该命令的使用格式见表2-8。
表2-8 what命令的使用格式
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/47_03.jpg?sign=1739424771-9IWZmCGG4vrVB7MI7wkaXRhDRLUQHWEd-0-77419d81e13e96c93a9ba79f4ff18918)
例2-5: 列出路径、文件和文件夹信息。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/47_04.jpg?sign=1739424771-76S7OTFnMvu6pWs0sg0pWUSLZvUSHRNc-0-df954f6f181a62c8d0e26894b6cf83c5)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/47_05.jpg?sign=1739424771-jYZeCwakmoLTUWsQ10ilk02gUutmbxkS-0-cbc0755c67a5c1cca4edbe4aadb6fead)
在MATLAB中,which命令显示当前文件夹的路径,以及在当前文件夹中找到的相应文件的完整路径。该命令的使用格式见表2-9。
表2-9 which命令的使用格式
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/47_06.jpg?sign=1739424771-mgV3BBEoVNu17fFNWBNwBxIfqUC4XQqm-0-53acb523a4376e991186279fbd8d9861)
如果item是一个重载的函数或方法,则which item只返回找到的第一个函数或方法的路径。
例2-6: 列出路径、文件和文件夹信息。
解: MATLAB程序如下。
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/48_01.jpg?sign=1739424771-X5BsmQ7SbUiLDWPfW181Ei6UtIavyVoL-0-07d51baffc694224565c8276efe744db)
![](https://epubservercos.yuewen.com/403E7C/23083822209829806/epubprivate/OEBPS/Images/48_02.jpg?sign=1739424771-7xaGeLhI5Uu3VOLlziwffeiKL7Eu0tKt-0-6128005bbd03085090544bbbb0119a87)