简体   繁体   中英

How to call a function placed in another directory in Matlab?

I have a large project coded in MATLAB , with 15-18 scripts . It is becoming very challenging to understand the whole code. I was thinking that if I can put some scripts in another folder, it will become very straightforward to understand and maintain the code. Is it possible to do that?

Consider the below directory structure:

在此输入图像描述

How can I call a function from main.m that is placed in func.m in Folder 1 ?

Manual solution

Perform the following:

  1. Right click on the folder which is on top of the hierarchy.
  2. click on Add to path
  3. Click on selected folders and subfolders

At this stage, your scripts will be able to identify any function or script which resides in one of the inner subfolders which you chose. In addition you can call any script and function you would like by simply typing it's name in the command line.

Code solution

Instead of doing it manualy, it is also possible to add folders and subfolders into path by using the following code:

 addpath(genpath(<path to your directory>))

Example

The tree structure of the current Matlab path

在此输入图像描述

You can add the functions and scripts from Folder 1 into path by either writing the following code:

addpath(genpath('Folder 1'))

Or by using 'Adding folders and subfolders' option from the menu:

在此输入图像描述

After doing so, it is possible to call func straight from main

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM