Matlab: définir fonctions dans un script ?

Résolu/Fermé
Signaler
Messages postés
23
Date d'inscription
mercredi 29 avril 2009
Statut
Membre
Dernière intervention
12 décembre 2009
-
Messages postés
681
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
5 janvier 2015
-
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.

2 réponses

Messages postés
681
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
5 janvier 2015
100
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/
3
Ça ne répond pas à la question.
0
Messages postés
681
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
5 janvier 2015
100
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 Simulink
freq = 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 !!!
0
Messages postés
23
Date d'inscription
mercredi 29 avril 2009
Statut
Membre
Dernière intervention
12 décembre 2009
3
Bonjour,
Merci pour ta réponse. Je vais carrément essayer de faire une grande fonction plutôt qu'un script. Merci.
0