matlab中Current Folder的修改

参考:
https://www.cnblogs.com/shine-lee/p/4258863.html
因为在执行matlab程序的时候,倘若.m文件中指定了相对路径,就会在运行时因为找不到相对路径所指示的数据。交代一下,我们的.m程序是在Current Folder下面子目录Image Segmentation下,而.m程序其中引用了Image Segmentation\data下的数据。目录结构是这样子的:
|—–Image Segmentation
|————-.m程序
|————data
|————数据
具体的实例是:.m文件完整路径名为,D:\matlab_workpace\matlab练习册\Computer-Vision-Lung-Cancer-Detection-master\Image Segmentation.m程序。但因为Current Folder并不在Image Segmentation下,所以造成程序无法找到data文件夹。所以报它是一个无效的文件夹。
虽然我们点开了.m程序,并处于可编辑的转态,但这并不表示我们的Current Folder就是.m程序的直接父目录。(原谅我表达有点模糊!!)
这里写图片描述
从而出现下面的报错:
这里写图片描述

解决

方法1

你当然可以使用最简单的方法,直接在.m程序的开头加上下面一句话。将Current Folder改在Image Segmentation下,这样搜索data\时就能搜索到了。

cd 'D:\matlab_workpace\matlab练习册\Computer-Vision-Lung-Cancer-Detection-master\Image Segmentation';

方法2——matlab 目录操作的函数

matlab下常用到的目录操作的函数如下:
这里写图片描述
当然也可以写一段自适应性的代码来更改Current Folder。

% 生成当前文件所在的完整目录,包括文件名
filename = mfilename('fullpath');
% 将文件完整路径进行分割 ,pathstr是目录,name是文件名
[pathstr,name,ext]= fileparts(filename);
cd(pathstr);

猜你喜欢

转载自blog.csdn.net/chaolei3/article/details/79754665