J'essaie d'écrire une fonction de journalisation généralisée pour tous les paramètres d'entrée transmis à une fonction dans MATLAB. Est-il possible de passer facilement tous les paramètres d'entrée à une autre fonction sans nommer individuellement les paramètres? Dans la fonction de journalisation, je peux bien sûr utiliser inputname(i)
dans une boucle for pour obtenir les noms des paramètres. Je préférerais ne pas avoir à effectuer cette logique dans la fonction principale. Alors, y a-t-il un moyen de faire quelque chose comme LogParams(allInputParams)
?Paramètres de la fonction de journalisation dans MATLAB
5
A
Répondre
8
Il semble que vous ayez une fonction principale, et à partir de cette fonction, vous voulez appeler une fonction LogParams
pour obtenir une liste des noms des variables passées à la fonction principale. Voici une façon que vous pouvez mettre en œuvre votre fonction LogParams
:
function names = LogParams
names = evalin('caller','arrayfun(@inputname,1:nargin,''UniformOutput'',0)');
end
La sortie de LogParams
retourné sera un réseau de cellules contenant les noms des variables passées à la fonction qui appelle LogParams
. La solution ci-dessus utilise les fonctions suivantes:
- EVALIN: pour évaluer une expression dans l'espace de travail de la fonction appelante.
- ARRAYFUN: comme alternative à une boucle for.
- NARGIN: pour obtenir le nombre d'arguments transmis à une fonction.
- INPUTNAME: pour obtenir le nom d'une variable d'entrée.
A titre d'illustration de la façon dont LogParams
travaux, créer la fonction suivante qu'il appelle:
function main_function(a,b,varargin)
disp(LogParams);
end
et maintenant l'appeler avec un certain nombre d'entrées (en supposant que les variables x
, y
et z
sont définis dans l'espace de travail):
>> main_function(x,y)
'x' 'y'
>> main_function(x,y,z)
'x' 'y' 'z'
>> main_function(x,y,z,z,z,z)
'x' 'y' 'z' 'z' 'z' 'z'
Questions connexes
- 1. journalisation générique des paramètres de la fonction dans la gestion des exceptions
- 2. fonction de création Matlab
- 3. Enregistrer les paramètres dans matlab
- 4. Problème minimisant la fonction dans Matlab (fmincon)
- 5. Fonction imnoise() dans Matlab
- 6. Fonction GCD dans matlab
- 7. Journalisation générique des paramètres d'opération dans WCF
- 8. Comment fonctionne la fonction normpdf de MATLAB?
- 9. passage de paramètres Javascript dans la fonction
- 10. Fonction de transfert dans MATLAB/Simulink
- 11. Fonction de polygone coupé dans Matlab
- 12. Fonction de produit croisé dans matlab
- 13. Marqueurs et la fonction imagesc() dans matlab
- 14. argument d'entrée de fonction MATLAB
- 15. Erreur de fonction MATLAB eval()
- 16. Paramètres de fonction dans PowerShell
- 17. Paramètres de la fonction de recherche
- 18. implémentation de la fonction interp1 de MATLAB en J2ME
- 19. Appel de la poignée de callback/fonction matlab depuis Java
- 20. la sommation de la fonction récursive en MATLAB
- 21. struct la fonction Paramètres
- 22. MATLAB | calculer les paramètres de gamma dist en fonction de la moyenne et de l'intervalle de probabilité
- 23. que signifie la propriété MajorAxisLength dans la fonction matlab regionprop?
- 24. Nom et paramètres de la fonction parent
- 25. jquery paramètres de la fonction iterator
- 26. Nombre de paramètres passés à la fonction?
- 27. MATLAB - valeurs de retour multiples d'une fonction?
- 28. paramètres de fonction par défaut dans C#
- 29. Paramètres non définis dans la fonction
- 30. Complexité inattendue dans une fonction matlab
Très soignée! .......... (points à remplir à 15 caractères) –
Merci. Qui aide. –
+1 pour un impact minimal sur la fonction d'appel. – Marc