IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

ecrire une focntion sous matlab


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Points : 35
    Points
    35
    Par défaut ecrire une focntion sous matlab
    bonjour;
    je voudrais creer une fonction qui permet de calculer la moyenne d'une matrice, mais une erreur s'affiche à chaque execution, pourtan le script s'execute parfaitement sans l'utilisation de la fonction,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    fuction [moy]=moy_euclidienne(b)
    n=size(b,1)
    som=0;
    for i=1:n
        for j=i+1:n
            som=som+b(i,j);
        end
    end
    som
     
    moy=som/((n*(n-1))/2)

    l'erreur afficher:

    >> moy_euclidienne(b)

    ??? Attempt to execute SCRIPT moy_euclidienne as a function:
    C:\Users\click\Documents\MATLAB\moy_euclidienne.m

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    j'ai résolu le problème, j'avais un problème de chemin de dossier

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2019
    Messages : 90
    Points : 254
    Points
    254
    Par défaut
    Bonjour,

    C'est peut-être l'objectif, mais cette fonction suppose que la matrice b est symétrique et à diagonale principale nulle. Les éléments de la diagonale principale sont par ailleurs exclus du calcul de la moyenne.

    Une vectorisation de la seconde boucle permet d'accélérer l'exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i=1:n
        som = som+sum(b(i,i+1:n)) ;
    end
    L'ensemble pouvant être remplacé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    b = triu(b,1) ;
    som = sum( b(:) ) ;
    La première ligne permettant d'extraire la matrice triangulaire supérieure et la seconde d'en calculer la somme des éléments.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Créer une interface sous matlab
    Par fleurrouge dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 11/05/2009, 22h46
  2. [Débutant] lecture d'une vidéo sous matlab
    Par jeune ingénieure dans le forum MATLAB
    Réponses: 6
    Dernier message: 30/04/2009, 10h01
  3. [Débutant] comment on peut recouvrer une image sous matlab
    Par 3issam84 dans le forum Images
    Réponses: 1
    Dernier message: 02/04/2009, 05h28
  4. Réponses: 1
    Dernier message: 06/05/2008, 13h32
  5. Utilisation d'une DLL sous Matlab
    Par lince102 dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/02/2008, 09h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo