Voici le documentation for command syntax, et un article de documentation avec d'autres exemples sur command vs function syntax.
De la documentation,
When calling a function using command syntax, MATLAB passes the arguments as character vectors.
Donc non, vous ne pouvez pas passer un nom de variable comme cur
, parce que cur
sera traité comme un obtenir vecteur de caractère et vous allez faire la même chose que cd('cur')
.
Vous pouvez le faire soit
cd(cur)
% or
cd 'C:\Windows\debug'
% or (as long as no whitespace in directory path)
cd C:\Windows\debug
Si vous ne voulez pas apprendre la syntaxe, la solution de contournement est de choisir une autre langue ... En utilisant les supports est pratique courante dans MATLAB, puisque vous pouvez également obtenir les valeurs de sortie à partir d'une fonction lors de l'utilisation de la syntaxe de commande.
également de la scripts and functions documentation vous pouvez voir le message
Caution: While the unquoted command syntax is convenient, in some cases it can be used incorrectly without causing MATLAB to generate an error.
Ainsi, cette méthode est déconseillée lorsque Matlab.
Pour 'cd' à un répertoire contenu dans une variable, comme vous essayez, vous devez utiliser le formulaire fonctionnel. Dans votre exemple, MATLAB recherche un répertoire appelé 'cur'. –
@PhilGoddard Bien sûr, je sais, mais je veux encore faire ça. Y a-t-il une solution de contournement? – yode
Pour citer la documentation de 'Command vs. Function Syntax':' Lorsqu'une entrée de fonction est une variable, vous devez utiliser la syntaxe de la fonction pour transmettre la valeur à la fonction. La syntaxe de commande transmet toujours les entrées en tant que texte littéral et ne peut pas transmettre les valeurs de variables. Je ne crois pas qu'il existe une solution de contournement. –