MATLAB的addpath和rmpath函数增加或删除路径

ops/2024/11/25 5:17:32/

在进行MBD建模开发时,模型生成代码时常需要加载一些其他的文件,例如代码生成模版文件cgt文件、模型所涉及的头文件,这个时候可以在模型的回调函数中使用addpath和rmpath函数加载和删除路径,例如设置模型的加载之前的回调函数在模型打开之前加载路径,在模型关闭之后的回调函数中删除路径。

图片

1.addpath函数

addpath函数功能:向搜索路径中添加文件夹。

语法addpath(folderName1,...,folderNameN)addpath(folderName1,...,folderNameN,position)addpath(___,'-frozen')oldpath = addpath(___)说明addpath(folderName1,...,folderNameN) 将指定的文件夹添加到当前 MATLAB会话的搜索路径的顶层。如果输入是由路径分隔符分隔的多个文件夹组成的集合,则会添加每个指定的文件夹。addpath(folderName1,...,folderNameN,position) 将指定的文件夹添加到 position 指定的搜索路径的最前面或addpath(___,'-frozen') 还会为所添加的文件夹禁用文件夹更改检测。为文件夹禁用文件夹更改检测后,MATLAB 将不会检测从 MATLAB 以外的地方对文件夹所做的更改。请将此语法与上述语法中的任何参数结合使用。可以按任一顺序指定 '-frozen' 和 position。此外,oldpath = addpath(___) 返回在添加指定文件夹之前的路径。

文件路径就是文件在电脑中的位置,表示文件路径的方式有两种,相对路径和绝对路径。

相对路径是相对于当前工作目录或另一个指定的起始位置来指定文件或目录的位置。它不包括完整的文件系统路径,而是描述文件相对于当前位置的位置。相对路径可以使用特定的记号来指示位置关系,比如 ../ 表示父目录,./ 表示当前目录等。相对路径的优势在于它们更加简洁,且在文件移动或重命名时更具灵活性。

绝对路径是一个完整的路径,从文件系统的根目录开始一直到指定文件或目录的路径。它提供了完整的位置信息,不依赖于当前工作目录或其他环境变量。由于提供了确切的位置,因此绝对路径在不同的环境中更加可靠。

名称

定义

优势

劣势

相对路径

相对于一个指定的起始位置来指定文件或目录的位置

更加简洁、更具灵活性

在不同的工作目录下可能不稳定

绝对路径

一个完整的路径

不依赖当前工作目录或其他环境变量,更加可靠

较为冗长、不灵活

(1)输入参数

输入参数folderName1,...,folderNameN — 要添加到搜索路径的文件夹名称。数量类型是字符向量 | 字符串标量数据类型(char | string)。要添加到搜索路径中的文件夹名称,指定为一个或多个字符向量或字符串标量。对每个文件夹使用完整的路径名。​​​​​​​

绝对路径示例:'c:\matlab\work'相对路径示例:'/home/user/matlab'多个相对路径示例:'/home/user/matlab','/home/user/matlab/test'

MATLAB 会先将所有包含 '.'、'..' 和符号链接的路径名称解析为其目标位置,然后再将其添加到路径,这样操作可以确保 MATLAB 路径中的每个条目代表一个唯一的文件夹位置。例如,如果指定 c:\matlab\..\work,MATLAB 会将文件夹 c:\work 添加到路径中。

(2)position属性

position属性表示在搜索路径上的位置,'-begin' (默认) | '-end'。其中'-begin' 是将指定文件夹添加到搜索路径的顶层,'-end'是将指定文件夹添加到搜索路径的底层。

(3)提示

  • 要保存新修改的搜索路径以用于将来的 MATLAB 会话,请使用 savepath 函数。

  • 要在启动时以编程方式修改搜索路径,请在 startup.m 文件中使用 addpath 语句。

  • 如果在局部函数内使用 addpath,则从该函数返回程序控制后会保留路径更改。即路径更改的范围是全局的。

2.rmpath函数

rmpath函数功能从搜索路径中删除文件夹。​​​​​​​

语法rmpath(folderName)说明rmpath(folderName) 从搜索路径中删除指定文件夹。如果 folderName 是由路径分隔符分隔的多个文件夹的集合,则每个指定的文件夹都将被删除。

3.genpath函数

genpatch函数功能生成搜索路径。​​​​​​​

语法p = genpathp = genpath(folderName)说明p = genpath 返回一个包含搜索路径的字符向量,该搜索路径中包含 matlabroot/toolbox 下的所有文件夹和子文件夹,包括空的子文件夹。p = genpath(folderName) 返回包含搜索路径的字符向量,该搜索路径包括 folderName 和 folderName 下的多级子文件夹。p 不包含名为 private 的文件夹、以 @ 字符开头的文件夹(类文件夹)、以 + 字符开头的文件夹(包文件夹)、名为 resources 的文件夹或所有这些文件夹中的子文件夹。

4.实例程序

test_addpath_main.m程序​​​​​​​​​​​​​​:

clc;%清除命令行窗口命令
clear all;%清除工作区变量
close all;%关闭图形窗口
pwd %返回当前的工作路径
%绝对路径
path = 'D:\MATLAB2021A\bin\微信公众号2024\MATLAB的addpath和rmpath函数\add_path_test';
addpath(path);
plot3dio();
rmpath(path);addpath(path,'-begin');
rmpath(path);
%相对路径
path5 = '.././add_path_test/1';
addpath(genpath(path5))%将文件夹及其子文件夹添加到搜索路径
plot3dio5();
rmpath(path5);

plot3dio.m程序:​​​​​​​

function plot3dio()
rng(40);
data = rand(100,3);
x = data(:,1);
y = data(:,2);
z = data(:,3);figure;
plot3(x,y,z)
xlabel('x');
ylabel('y');
zlabel('z');
end

plot3dio5.m程序:​​​​​​​

function plot3dio5()
rng(5);
data = rand(100,3);
x = data(:,1);
y = data(:,2);
z = data(:,3);figure;
subplot(2,1,1);
scatter3(x,y,z,'b')
xlabel('x');
ylabel('y');
zlabel('z');
subplot(2,1,2);
scatter3(x,y,z,'filled')
xlabel('x');
ylabel('y');
zlabel('z');
end

​​​​​​​运行结果如下所示:

图片

图片

程序运行之前的路径:

图片

程序运行之后的路径:

图片

图片


http://www.ppmy.cn/ops/136487.html

相关文章

代码风格与规范

2. 代码风格与规范 代码风格与规范是编写高质量软件的基础。良好的代码风格不仅提升代码的可读性和可维护性,还促进团队协作,减少潜在的错误。以下内容将详细介绍在Python开发中需要注意的关键点。 2.1 遵循PEP 8代码风格指南 什么是PEP 8&#xff1f…

SATA接口不通分析案例分享

问题: 反馈有台NVR的某个接口SATA不通(共有4个SATA接口,采用SATA HUB JMB575),挂载硬盘不上。 分析: 1、直接对换问题口SATA1与正常口SATA2的SATA数据线,SATA1口还是异常,挂在不上…

Python 开发工具 -- PyCharm 简介

一、PyCharm 简介 PyCharm 是由 JetBrains 打造的一款 Python IDE。 PyCharm 具备一般 Python IDE 的功能,比如:调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。 另外,PyCharm 还提供了一些很好的功能用…

小米xiaomi

文章目录 一、vector和list的区别?二、include 双引号和尖括号的区别?三、set的底层数据结构?四、set和multiset的区别?五、map和unordered_map的区别?六、虚函数和纯虚函数的区别?七、extern C有了解过吗&…

Yolo11改进策略:Block改进|VOLO,视觉识别中的视觉展望器|即插即用|附代码+改进方法

摘要 论文介绍 VOLO模型概述:本文提出了一种名为VOLO的视觉识别模型,该模型旨在通过创新的注意力机制——前景器(Outlooker)来提高视觉识别的性能。VOLO模型在ImageNet等基准测试上取得了优异的结果。研究背景:传统的视觉Transformer(ViT)模型在全局依赖性建模上表现出…

I.MX6U 裸机开发15.IRQ中断——GPIO中断处理

I.MX6U 裸机开发15.IRQ中断——GPIO中断处理 一、向GPIO驱动添加中断处理函数1. GPIO 相关寄存器(1)GPIOx_ICRn 按键GPIO设置中断模式(2)使能GPIO对应的中断(3)GPIOx_EDGE_SEL(4)GPI…

stable diffusion生成模型

1、stable diffusion Stable Diffusion 是一种扩散模型,基于对图像的逐步去噪过程训练和生成。它的核心包括以下几个步骤: 扩散过程(Diffusion Process)在训练时,向真实图像逐步添加噪声,最终将其变为纯随机噪声。这是一个正向过程,目的是学习如何将复杂的图像分解成随…

DFT专家分析scan insertion时使用EDT的策略

作为一名芯片设计DFT工程师专家,在做scan insertion(扫描插入)时使用EDT(Embedded Deterministic Test,嵌入式确定性测试)的参数配置策略,需要综合考虑多个方面的因素,以确保测试的高…