Matlab: définir fonctions dans un script ?
Résolu
nchristedem
Messages postés
24
Statut
Membre
-
DrNitro Messages postés 733 Statut Membre -
DrNitro Messages postés 733 Statut Membre -
Bonjour,
Je suis nouveau dans Matlab. Je voudrais savoir si c'est possible d'insérer (ou définir) des fonctions dans un script. Par exemple définir des fonctions A (x,y), B(c,z) dans un script et les utiliser dans le même script. Si oui, comment? Visiblement, je suis obligé de définir les fonctions dans un autre m-file.
Je suis nouveau dans Matlab. Je voudrais savoir si c'est possible d'insérer (ou définir) des fonctions dans un script. Par exemple définir des fonctions A (x,y), B(c,z) dans un script et les utiliser dans le même script. Si oui, comment? Visiblement, je suis obligé de définir les fonctions dans un autre m-file.
Configuration: Windows XP Firefox 3.0.12
2 réponses
-
en googlant un peut ontrouve ici https://us191.ird.fr?article3 ceci
* Les fonctions sous MATLAB
Les fichiers function sont équivalent aux sous programme. Une fonction peut posséder des arguments d’entrée et des arguments de sortie.
Il est préférable d’utiliser le même nom de fichier que la fonction elle-même. A la différence des fichiers script classiques dans MATLAB, les variables à l’intérieur d’un fichier function ne sont pas disponibles à l’extérieur, elles ne sont visibles que dans leurs propres espace de travail.
La syntaxe la plus générale des fichiers function est la suivante :
[y1,y2,...ym]=fonc(x1,x2,..xn)
avec n arguments d’entrée et m arguments de sortie.
Une fonction peut posséder un nombre variable d’arguments d’entrée et sortie. On utilise pour cela les commandes varargin et varargout.
function test(varargin)
for i=1:nargin
x(i)= varargin(i);
end
Utiliser la syntaxe des commandes Matlab set et get avec des propriétés :
function ma_fonction(varargin)
% usage: ma_fonction(x,'propriete',valeur,'...)
x = varargin{1};
property_argin = varargin(2:end);
while length(property_argin) >= 1,
property = property_argin{1};
value = property_argin{2};
property_argin = property_argin(3:end);
switch lower(property)
case 'ma_proprite_1'
var_1 = value;
case 'ma_proprite_2'
var_2= value;
case ...
...
otherwise
msg = sprintf('Propriété inconnue:"%s"',property);
error(msg);
end
end
tu devrait aller faire un tour du coté de Developpez.com --->>pour matlab -->> https://matlab.developpez.com/-
-
en gros la reponse est oui faut utiliser d'autres fichiers pour ces fonctioons et routines
et si t'a la flemme d'apprendre la syntaxe des "fonctions" tu peut lancer des petits scriptes (ou meme des gros) a l'intérieur de ton script principale en utlisant la commande "run"run script1 run script2 run Function_mFile
et très utile aussi la commande "sim" pour lancer des simulations Simulinkfreq = 10 ; sim test_Sinusoide ; // test_Sinusoide.mdl fichier simulink save X //et t'a en retour les resultats de la simulation que tu peut refaire en boucle pour tester des centaines de paramatres .... cool !
j'espere que ce complément d'informations repond amplement a la question et ne causera pas de bugs !!!
-
-
Bonjour,
Merci pour ta réponse. Je vais carrément essayer de faire une grande fonction plutôt qu'un script. Merci.