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

Scilab Discussion :

Moyennage de plusieurs matrices terme à terme


Sujet :

Scilab

  1. #1
    Candidat au Club
    Femme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Novembre 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2023
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Moyennage de plusieurs matrices terme à terme
    Bonjour,

    j'ai cherché dans le forum mais n'ai rien trouvé à ce sujet.

    J'ai 6 matrices A, B, C, D, E et F à 2 dimensions et je cherche à générer une matrice G qui soit la moyenne terme à terme des 6 premières matrices.
    J'utilise une double boucle for qui créé pour chaque élément (i,j) une sous matrice formée des 6 élément A(i,j), B(i,j), C(i,j), D(i,j), E(i,j) et F(i,j), en fait la moyenne qui est stockée dans G(i,j).
    De plus, comme j'ai des éléments non numériques Nan dans chacune des 6 matrices je suis quasi contrainte d'utiliser la fonction nanmean.

    Y'a-t-il un moyen plus élégant et surtout plus rapide qu'une boucle for pour faire ce calcul? J'ai un temps de calcul proche de 3minutes...


    D'avance merci beaucoup pour votre aide
    Celine

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 881
    Points
    52 881
    Par défaut
    À tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    G = zeros(size(A,1), size(A,2));
    G(:) = nanmean([A(:) B(:) C(:) D(:) E(:) F(:)],2);

  3. #3
    Candidat au Club
    Femme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Novembre 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2023
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Génial! fonctionne parfaitement!
    Je ne connaissais pas cette syntaxe, merci!

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 881
    Points
    52 881
    Par défaut
    Un peu de lecture complémentaire : MATLAB : Qu'est-ce que l'indexage linéaire ? (s'applique aussi à Scilab et à GNU Octave)

  5. #5
    Candidat au Club
    Femme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Novembre 2023
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2023
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci pour le lien super intéressant, je vais pouvoir optimiser pleins de choses...

    Une autre question: pour quelle raison quand je remplace la fonction nanmean précédemment utilisée, par nanmedian qui a exactement la même syntaxe, mon programme tourne indéfiniment ?

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 881
    Points
    52 881
    Par défaut
    Citation Envoyé par cgoury Voir le message
    pour quelle raison quand je remplace la fonction nanmean précédemment utilisée, par nanmedian qui a exactement la même syntaxe, mon programme tourne indéfiniment ?
    Aucune idée. Peut être un bug ?

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

Discussions similaires

  1. Multiplication de matrices terme à terme
    Par Obofix le gaulois dans le forum Général Python
    Réponses: 4
    Dernier message: 20/06/2017, 17h17
  2. [Débutant] Multiplier chaque ligne d'une matrice terme à terme par un vecteur
    Par Cpowa dans le forum MATLAB
    Réponses: 2
    Dernier message: 18/04/2012, 17h32
  3. [Excel] Reporter plusieurs matrices dans un fichier xls
    Par Muriellle dans le forum MATLAB
    Réponses: 2
    Dernier message: 05/12/2007, 16h37
  4. [Débutant] Importer un fichier ASCII en plusieurs matrices
    Par cil20 dans le forum MATLAB
    Réponses: 6
    Dernier message: 22/11/2007, 18h00
  5. Stocker des données dans plusieurs matrices différentes
    Par setsuko974 dans le forum Langage
    Réponses: 6
    Dernier message: 23/03/2007, 23h48

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