web-dev-qa-db-fra.com

Comment appeler une fonction placée dans un autre répertoire de Matlab?

J'ai un grand projet codé en MATLAB, avec 15-18 scripts. Il devient très difficile de comprendre tout le code. Je pensais que si je peux mettre certains scripts dans un autre dossier, il deviendra très simple de comprendre et de maintenir le code. Est-il possible de faire ça?

Considérez la structure de répertoire ci-dessous:

enter image description here

Comment puis-je appeler une fonction à partir de main.m qui est placé dans func.m dans Folder 1?

11
Atinesh

Solution manuelle

Effectuez les opérations suivantes:

  1. Faites un clic droit sur le dossier qui se trouve en haut de la hiérarchie.
  2. cliquez sur Ajouter au chemin
  3. Cliquez sur les dossiers et sous-dossiers sélectionnés

À ce stade, vos scripts seront en mesure d'identifier toute fonction ou script qui réside dans l'un des sous-dossiers internes que vous avez choisis. De plus, vous pouvez appeler n'importe quel script et fonction que vous souhaitez en tapant simplement son nom dans la ligne de commande.

Solution de code

Au lieu de le faire manuellement, il est également possible d'ajouter des dossiers et des sous-dossiers dans le chemin en utilisant le code suivant:

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

Exemple

L'arborescence du chemin Matlab actuel

enter image description here

Vous pouvez ajouter les fonctions et les scripts du dossier 1 dans le chemin en écrivant le code suivant:

addpath(genpath('Folder 1'))

Ou en utilisant l'option "Ajouter des dossiers et des sous-dossiers" dans le menu:

enter image description here

Après cela, il est possible d'appeler func directement depuis main

13
drorco