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 :

visualisation d'une Matrice I x J x K


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 47
    Par défaut visualisation d'une Matrice I x J x K
    Bonjour,

    j'ai une matrice CC{i}(j,k) que je veux visualiser.

    Merci de m'aider

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Euh...et c'est tout ?
    C'est un peu vague pour que l'on réponde

    Type de visualisation ?
    Quel type de données dans ta matrice ?
    Visualisation de quoi en fonction de quoi ?

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut
    Bonjour.
    Peut-être "spy"

  4. #4
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 47
    Par défaut
    I J K ce sont des entiers ( indices)
    j'ai une cellule P= cell(15,1)
    elle est remplie d'une certaine manière avec des entiers
    je calcule pour chaque P{i} le produit des factorielles de ses éléments et je le stocke dans V(i).

    et en fait ma matrice CC{i}(j,k) dépend de V(i) et v(k) et v(j)
    je voudrais alors visualiser CC pour voir cette dépendance.

    je ne sais pas si je suis assez clair

    Merci

  5. #5
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Si tu pouvais nous donner un exemple de tes données ca serait plus facile

  6. #6
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 47
    Par défaut
    Citation Envoyé par duf42 Voir le message
    Si tu pouvais nous donner un exemple de tes données ca serait plus facile
    tu veux que je te donne le programme?
    en tout cas je te le mets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
     
    fprintf('\n calcul des coefficients C_ijk');
    NbRva = 5;
    OrdrePol=4;
     
     
    PsiBaseSize = 0;
    for k=0 : OrdrePol
        PsiBaseSize= PsiBaseSize + factorielle( NbRva + k -1 )/(factorielle(k)*factorielle(NbRva-1));
    end
    fprintf ( '(Size= %3.0d)' , PsiBaseSize);
    PsiBase= cell(PsiBaseSize,1); % la numérotation de la base commence par 1
    PsiBase{1}= zeros([1 NbRva]);
    % initialisation
    MM= NbRva -1;   % NbRva -1 car l'algorithme qui nous permette de générer la séquence alpha
    %qui indexe le produit des polynomes d'hermite est equivalent à placer NbRva - 1 boules
    %dans NbRva - 1 cases + l'ordre considérer ( ordre courant)
    n= 1 ;
    t= zeros(1,MM);
     
    % un cas particulier
    if (NbRva>0)
        switch NbRva
            case 1 % le cas d'un pôlynome de dimensio 1 et donc equivalent aux polynomes d'hermites
                % on ne travaille plus sur des polynomes multidimentionnels
                                        for i=1: OrdrePol
                                            PsiBase{i+1}(1)= i;
                                        end;
            otherwise % pour une dimension plus grande
                for OrdreCourant= 1: OrdrePol
                    FinGenerer = 0;     %% pour tester si on a parcouru toutes les possibiltés de placer ces boules
                    PremierOrdre = 0; %% pour tester si on est sur la liste de départ qui correspond
                    %%à placer toutes les boules à droite ( les M-1 premières cases)
                    while(FinGenerer == 0)
                        n=n+1;  %% le cas 1 correspond au polynome constant égale à 1
                                    if ( PremierOrdre ==0)    % la premiere liste t pour l'ordre courant
                                        for i=1:MM
                                            t(i)=i;     %% on place les MM boules dans les MM premières cases, l'élément t(i)
                                            %% de la liste t contient l'indice de la case où est plcée la ième boule
                                        end;
                                        PremierOrdre= 1;
                                    else
                            %une incrémétation régulière
                            % l'almgorithme qui consiste à placer les boules suis
                            % les règles suivante:
                                        if (t(MM)< (MM+ OrdreCourant)) %% on test si on peut déplacer la boule la plus à droite d'une case à droite.
                                            t(MM)= t(MM)+1; %% on déplace
                                        else
                                % t(MM) = tmax= MM+ OrdreCourant et donc on ne peut
                                % pas déplacer
                                            j=MM;
                                            while( t(j)== j + OrdreCourant)%% on cherche la boules la plus à droite qu'on peut déplacer
                                                    j=j-1;
                                            end;
                                            t(j)= t(j)+1;%% on la déplace
                                            for k= (j+1):MM %% toutes les boules qui se trouvent à sa droite sont placées dans la case se trouvant à leur gauche
                                                t(k)= t(j) + k-j;
                                            end;
                                        end;
                                    end;
                        % la transormation de t en PsiBase, pour chaque entier de
                        % la séquence alpha_i on laisse alpha_i cases vides et on
                        % place une boule dans la case suivante et réciproquement,
                        % pour chaque positionnement de boules donc une liste t,
                        % chaque entier de la séquence est égale au nombre de cases
                        % vides entre de boules consécutives
                        PsiBase{n}(1) = t(1)-1;
                        for i= 2:MM
                            PsiBase{n}(i) = t(i) - t(i-1) - 1;
                        end;
                        PsiBase{n}(NbRva) = NbRva + OrdreCourant -t(MM)- 1;
                        if (t(1) == (OrdreCourant + 1)) %% toutes les boules sont à gauche, cette condition est clairement nécessaire
                            %% si toutes les boules sont à droites, elle est suffisante car si elle est verrifié,
                            %% il n'y a plus de cases vides. en effet, le nombre de cases restantes est
                            %% exactement le nombre de boules.
                            FinGenerer = FinGenerer + 1;%% fini de générer pour l'ordre courant
                        end;
                    end;
                end;
        end;
    else
        disp ( 'le nombre de variables aléatoires doit être supérieur à 0');
    end;
     
     
    PsiNorme= zeros(1,PsiBaseSize);
    for k=1:PsiBaseSize
        norme=1;
        for j = 1 : NbRva
            norme = norme*factorielle(PsiBase{k}(j));
        end;
        PsiNorme(k)= norme;
    end;
     
     
    CC= cell([1,NbRva]);
    for i= 1:NbRva
        CC{i}= sparse( PsiBaseSize,PsiBaseSize); %% on crée une matrice clairesemée pour optimisder le stockage
    end;
    for i= 1:NbRva
        fprintf('.');
        for j= 1:NbRva
            for k= 1:NbRva
                Psi_k=PsiBase{k};
                Psi_j=PsiBase{j};
                % on va tester si Psi_j et Psi_k ne diffère que par le ième
                % élément
                PresqueEgaux=0;
                for l= 1:NbRva
                    if (l~=i)
                        if (Psi_k(l)~= Psi_j(l))
                            PresqueEgaux=1;
                        end;
                    end;
                end;
                if (PresqueEgaux==1)
                    % les deux vecteurs sont très différents
                    % CC{i}(jk)= 0 ne sont pas stockés
                else
                    % les deux vecteurs ne diffèrent que par leur ième élément
                    if ( Psi_k(i)==(Psi_j(i)-1) )
                        CC{i}(j,k)= PsiNorme(j);
                    elseif ( Psi_k(i)==(Psi_j(i)+1) )
                        CC{i}(j,k)= PsiNorme(j)*(Psi_j(i)+1);
                    else
                        %C_ijk = 0;
                    end;
                end;
            end;
        end;
    end;
    je voudrais visualiser CC
    et voir la dépendance qu'elle peut avoir avec PsiNorme

  7. #7
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Dans tous les cas, si tu as 3 indices, ce n'est pas une matrice mais un tableau.
    Jean-Marc Blanc

  8. #8
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Citation Envoyé par Mrmeynis Voir le message
    tu veux que je te donne le programme?
    Ton code ne peut fonctionner seul (j'ai un message d'erreur à cause de la fonction factorielle).

    Le mieux serait que tu nous donnes ce que retournent le code que t'a donné mihaispr.

    On abesoin de connaitre le type et la taille de tes éléments.
    Et aussi quel genre de tracé tu veux faire (un simple PLOT ?, note : MESHGRID ne fait aucun tracé)

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

Discussions similaires

  1. référencement sur une matrice
    Par bni dans le forum C++
    Réponses: 3
    Dernier message: 24/03/2005, 00h06
  2. [PL/SQL] définir une matrice
    Par lalystar dans le forum Oracle
    Réponses: 5
    Dernier message: 22/02/2005, 15h27
  3. [JTable] remplir avec une matrice
    Par ybdz dans le forum Composants
    Réponses: 3
    Dernier message: 08/12/2004, 21h03
  4. Recherche des coefficients d'une matrice 3x3
    Par colorid dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 25/11/2004, 16h52
  5. Déclarer une matrice
    Par joy dans le forum C
    Réponses: 7
    Dernier message: 09/12/2002, 00h42

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