2009-09-17 10 views
13

Parfois, lorsque j'ajoute un nouveau fichier à mon chemin, je dois redémarrer MATLAB sinon il ne sera pas détecté. Il doit y avoir un autre moyen pour ça!Comment mettre à jour le chemin MATLAB?

+0

Quel système de fichiers utilisez-vous? Matlab s'appuie sur le suivi des modifications du système de fichiers pour le notifier lorsqu'il y a des changements. Rehash ou rehash ('path') est suffisant si les fichiers ne se trouvent pas sous le répertoire matlab/toolbox –

+0

NTFS (sous Windows) – Lucas

Répondre

8

J'ai rencontré des problèmes similaires (Matlab ne le remarque pas quand je change un fichier). Malheureusement, je n'ai aucune idée de ce qui le cause ou comment le résoudre. Je trouve généralement que CLEAR ALL résout le problème, mais sachez qu'il efface toutes les variables dans l'espace de travail. Une commande 'REHASH' (par exemple, REHASH TOOLBOXRESET) peut également être utile.

J'aimerais voir une meilleure réponse; toute la documentation que j'ai trouvée semble indiquer que cela ne peut pas arriver.

+1

Cependant, je me souviens que lorsque REHASH ne fonctionnait pas alors que REHASH TOOLBOXRESET fonctionnait, même si les fichiers ne se trouvaient pas dans le répertoire de la boîte à outils. Peut-être bien été une coïncidence, mais puisque j'ai toujours utilisé cette dernière option, puisque le coût semble être très faible (les deux commandes reviennent immédiatement). –

+1

C'est ce que dit la documentation. –

3

Il est possible que Matlab cache certains fichiers au démarrage pour améliorer les performances. Cela arrive avec des fichiers dans certains répertoires.

De Matlab aide pour la commande de chemin:

Remarque (...) Notez également que l'emplacement des fichiers dans l'arborescence des répertoires matlabroot/boîte à outils sont chargés et mises en mémoire cache au début de chaque Matlab session pour améliorer les performances. Si vous enregistrez des fichiers dans les répertoires matlabroot/toolbox à l'aide d'un éditeur externe ou ajoutez ou supprimez des fichiers de ces répertoires à l'aide des opérations du système de fichiers, exécutez la boîte à outils rehash avant d'utiliser les fichiers de la session en cours. Si vous apportez des modifications aux fichiers existants dans les répertoires matlabroot/toolbox à l'aide d'un éditeur externe, exécutez clear functionname avant d'utiliser les fichiers de la session en cours. Pour plus d'informations, voir la page de référence rehash ou la rubrique Toolbox Path Caching dans la documentation MATLAB Desktop Tools and Development Environment

2

J'ai souvent vu cela se produire avec des emplacements de fichiers en réseau. Je ne comprends pas le mécanisme, mais ça arrive vraiment. Une solution qui fonctionne souvent:

path(path); 

ou, si cela ne fonctionne pas pour le ramasser, essayez ceci: (NB, cela effacera votre espace de travail)

clear classes; 
path(path); 

Nous avons fait ce dernier tant, nous l'avons mis dans le script sur notre chemin de code commun appelé:

shazaam; 

Oui, mon âge montre.

2

Vous voulez la fonction "rehash" ou vous devez définir à nouveau le chemin en utilisant "path (path)" ou similaire. Cela dépend également du fait que vous utilisez un chemin "gelé". Regardez l'aide pour ADDPATH. MATLAB conservera une copie en mémoire cache du fichier M compilé à moins qu'il sache que vous l'avez modifié. Si vous avez créé le fichier ou si vous l'avez modifié en dehors de MATLAB, il se peut qu'il ne sache pas qu'il a été modifié.

0

Cela m'arrive lorsque la connexion au réseau en réseau est perdue puis restaurée. rehash ne fonctionne pas mais rehash toolboxreset fait

Questions connexes