Matlab: définir fonctions dans un script ?

Résolu/Fermé
nchristedem Messages postés 23 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 12 décembre 2009 - 1 août 2009 à 21:29
DrNitro Messages postés 681 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 5 janvier 2015 - 21 juin 2013 à 20:52
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

DrNitro Messages postés 681 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 5 janvier 2015 99
1 août 2009 à 23:43
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
DrNitro Messages postés 681 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 5 janvier 2015 99
Modifié par DrNitro le 21/06/2013 à 21:09
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
nchristedem Messages postés 23 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 12 décembre 2009 4
10 août 2009 à 13:53
Bonjour,
Merci pour ta réponse. Je vais carrément essayer de faire une grande fonction plutôt qu'un script. Merci.
0