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 :

matrice 4 dimensions [Débutant]


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Australie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Octobre 2014
    Messages : 74
    Points : 42
    Points
    42
    Par défaut matrice 4 dimensions
    Bonjour à tous

    voila, je travaille actuellement sur des matrices 4D qui ont les dimensions suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    size(POP)
    ans =
       300   200     5    12
    donc dans cet exemple 300 et 200 correspondent aux longitudes et latitudes (on a donc une grille), "5" correspond a 5 catégories différentes de populations et "12" correspond aux 12 mois de l'année qui m'intéresse
    et enfin les valeurs qui remplissent toute cette matrice sont des fractions de concentrations de population

    or je souhaite étudier une 6eme catégorie, qui est les zones sans populations
    donc en gros je veux faire : 1-somme(des concentrations des 5 autres catégories)
    ce que je souhaiterais faire c'est donc faire la somme de toutes les catégories a chaque point de grille (longitude, latitude)

    mais je n'arrive pas au résultat que je souhaiterais! en effet, je sais que mon résultat doit etre de dimension 300x200x1x12
    puisque je n'aurais plus qu'une categorie (celle sans population) mais je veux garder le meme nombre de longitude, latitude et mois

    mais quoi que je tente sur matlab, je n'arrive pas a ces dimensions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SANS_POP=1-nansum(POP(:,:,1;5,:));
    ici je pensais faire la somme sur l'ensemble des categories, mais pourtant le resultat est de dimension 1x200x5x2
    quoi que je fasse matlab fait aussi un calcul sur les longitude! je ne comprends pas pourquoi

    Si l'un d'entre vous peut m'éclairer, je vous remercie beaucoup
    Bonne journée

  2. #2
    Membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Australie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Octobre 2014
    Messages : 74
    Points : 42
    Points
    42
    Par défaut
    le seul truc que j'ai trouvé et qui semble correspondre a ce que je souhaite, c'est de permuter la variable POP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    POP_perm=permute(POP,[3 4 1 2]);
    size(POP_perm)
    ans =
     
         5    12   300   200
    puis de refaire la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SANS_POP=1-nansum(POP_perm(1:5,:,:,:));
    size(SANS_POP)
    ans =
     
         1    12   300   200
    mais bon, je ne suis pas vraiment convaincue de ce resultat, je ne vois pas pourquoi la permutation permettrait d'arranger quoi que ce soit...
    Des idées??
    Merci a vous

  3. #3
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    la réponse est dans la documentation de nansum :
    Il suffit de faire la somme selon la 3ème dimension :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SANS_POP = nansum(POP,3);
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  4. #4
    Membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Australie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Octobre 2014
    Messages : 74
    Points : 42
    Points
    42
    Par défaut


    youps.. Tellement simple vu comme ca!
    Merci beaucoup

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/06/2009, 16h08
  2. tableau / matrice à n dimensions
    Par Bele'nos dans le forum C++
    Réponses: 11
    Dernier message: 28/12/2008, 14h51
  3. Réponses: 2
    Dernier message: 29/04/2008, 15h12
  4. [TP] Matrice à deux dimensions
    Par bongo parfait dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 18/03/2007, 22h20
  5. matrice 3 dimensions autour de z
    Par aimad41 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 10/03/2007, 15h13

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