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 :

probléme d'index sur les matrices


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut probléme d'index sur les matrices
    Bonsoir à tous
    Merci à l’équipe de développez pour m’accepté
    Je programme actuellement des équations mathématique relative aux traitements d'image, les cordonnées dans les dits équations débutent par la valeur 0 et comme dans le Matlab les matrices débutent par 1 , à cause se conflit j’ai eu un problème d’index
    Existe-t-il une fonction dans le Matlab pour régler ce problème

    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    doctorant
    Inscrit en
    Décembre 2010
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2010
    Messages : 101
    Points : 148
    Points
    148

  3. #3
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci pour votre aide d’avance

    Pour m’éclairer quant à mon problème
    Je suis entraine de faire un projet concernent le traitement d’image, pour réalisé celui ci
    Il suffît de passer par une étape de calcule des moments avec ceux de chebysheve
    Les équations utilisées sont

    t(x)= a t(x-1) + b t(x-2)


    Les X sont les coordonnées des images leur progression x= 0. . . N-1 alors
    Pour programmer ces équations dans le Matlab je trouve des difficultés à réaliser les matrices des
    Images, y a il une solution pour commencer avec une coordonnée de départ de 0 à N dans la matrice avec Matlab

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Qu'est-ce qui te gène dans le fait de commencer à 1?
    Il te suffit juste de faire un décalage d'indice...

    Montre-nous ce que tu as essayé de coder, même si c'est faux.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 81
    Points : 50
    Points
    50
    Par défaut
    bonsoir !!
    je suis binôme avec Slash85
    le problème c'est qu'on a une matrice qui contiens les valeur de "X"
    et dans cette matrice il n' y a pas de x=0
    alors que les formule qu'on dois implémentés commence par x=0.
    voila les équations :


    voila le code actuel :
    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
    function T = cheby(n,N)
    i=0;
    while (i<=n)
        j=1;
        while(j<=N)
            if (i==0)
        T(i+1,j)=sqrt(1/N);
            elseif (j==1 && i>=1)
                T(i+1,j)=(-sqrt(((N-i)*((2*i)+1))/((N+i)*((2*i)-1))))*T(i,j);
            elseif (j==2)
                T(i+1,j)=(1+(i*(i+1))/(1-N))*T(i+1,j-1);
            elseif (j>=3 && j<=(N/2)&& (i>=1))
                T(i+1,j)=(-(i*(i+1)-((2*j)-1)*(j-N-1)-j)/(j*(N-j)))*T(i+1,j-1)+(((j-1)*(j-N-1))/(j*(N-j)))*T(i+1,j-2);
            elseif (j>(N/2) && i>=1) 
                T(i+1,j)=T(i+1,(N-(j-1)))/(-1.^(i));
            end
            j=j+1;
        end
        i=i+1;
    end
     
     
     
    end
    comme vous pouvez le constater, on a fais un changement d'indice
    ie: a la place de tn(0) c'est tn(1) et donc tn-1(1) pour la récurrence
    et la deuxième a la place de tn(1) c'est tn(2)
    la dernière formule c'est t0(x)=sqrt(1/N).
    et la formule générale tout en haut commence par x=3
    comme cela on aura pas de tn(0) lorsque la récurrence demande tn(x-2)
    voila en gros ce qu'on a fais!
    merci our votre aide !!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Le code m'a l'air bon, à part que des boucles for seraient plus de circonstance.
    Sinon, pour cette histoire d'indices, vous avez la solution d'utiliser une fonction récursive au lieu d'une matrice.
    La définition de votre fonction ressemblerait alors à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function T = cheby(n,x,N)
     
    if n==0 && x == 0
       T = sqrt(1/N);
    elseif x==0 
        T = -sqrt(((N-n)*(2*n+1))/((N+n)*(2*n-1)))*cheby(n-1,x,N);
    ...

  7. #7
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci monsieur de votre précieux conseille
    On a évité la récurrence pour réduire le temps de calcul
    Les dernières équations sont utilisé pour calculer les moments d’une image,
    Tnm = tn(x)*tm(y)
    C’est le moment de l’ordre (nm) pour le pixel (x, y) de l’mage, comme vous savez l’image est une matrice
    Dans la Matlab (x, y)=(0,0) n’existe pas alors Tnm = tn(0)*tm(0) c’est un calcul de moment pour un pixel qui n’existe pas dans l’image
    A cause de sa je pense que pour réglé se conflit il fallait que la taille de la matrice sera de 0 à N-1 au lieu de 1 à N, cette conversion permet de calculer les moments correctement et elle va m’aidé pour
    Termine mon projet
    Merci d’avance !!!!!

Discussions similaires

  1. [Débutant] Problème d'index dans les matrices
    Par wolf11 dans le forum MATLAB
    Réponses: 2
    Dernier message: 18/11/2011, 19h55
  2. Indexe sur les champs de type DATETIME
    Par Thierry8 dans le forum Requêtes
    Réponses: 9
    Dernier message: 25/06/2006, 19h45
  3. [DOM] Problème d'accent sur les noms de fichier avec mon parseur
    Par ujoodha dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 06/04/2006, 21h55
  4. Opérations sur les matrices...
    Par aokiseiichiro dans le forum C
    Réponses: 32
    Dernier message: 28/07/2005, 17h10

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