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 "Index exceeds matrix dimension"


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Problème "Index exceeds matrix dimension"
    Bonsoir,

    J'ai codé la fonction ci-dessous pour travailler sur une matrices X de n lignes *4 colonnes(1e col: Id user, 2e col: Id film). Quand je fais appel a cette fonction, par ex: SimU(1,2,X), le message d'erreur "Index exceeds matrix dimension" s'affiche. Je n'arrive pas à trouver le problème, où est-ce que je me trompe ? Merci
    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
     
    function Su = SimU(u1,u2,X)
    %Calcul de la similarite entre deux utilisateurs
    % cpt : compteur de film ayant ete evalue par u1 et u2
    cpt=0;
    res=0;
    [n,d]=size(X);
    %boucle pour chercher les films evalue par u1
    for i = 1:n
     
        if X(i,1)== u1
     
            %boucle pour chercher les films evalue par u2
            for j = 1:n
     
                if X(j,1)== u2
     
                    %condition si le film a ete evalue par u1 et u2
                    if X(i,2) == X(j,2)
     
                        res = ((X(i,3)-X(j,3)).^2);               
                        sum = sum + res;                   
                        cpt = cpt+1;

  2. #2
    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,

    un début de réponse dans la :
    Index exceeds matrix dimensions.

    Si tu n'arrives pas à corriger ton erreur, donne-nous le message d'erreur complet.
    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.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    j'ai déjà regardé dans la FAQ, je n'ai pas l'impression que les exemples données me soient d'une grande aide. Le message d'erreur est juste "??? Index exceeds matrix dimensions."
    Je peux appeler la fonction et taper SimU(1,2,X), 1 et 2 qui sont les 2 plus petits chiffres, présents dans la matrice ne marche pas.
    Je travaille sur une matrice de 100 000 lignes et 4 colonnes, je pense ne pas demander de valeurs dépassant l'index avec 1 et 2.
    Si ce n'est pas ça le problème, c'est peut-être ma fonction, je ne vois pas du tout.

    Merci

  4. #4
    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
    Je vais sans doute te paraitre insistant, mais peux-tu nous montrer le message d'erreur complet? Avec le message que tu indiques, matlab doit te donner la ligne qui provoque cette erreur (ainsi que le(s) noms(s) des fonctions impliquées).
    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.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai corrigé le problème "index..", en sortie de seconde boucle, j'ai oublié de réinitialiser j à 1. Il restait à j=n et donc la seconde boucle ne pouvait pas fonctionner. J'ai un autre problème qui est apparu mais ce premier problème est terminé. Merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/01/2010, 21h01
  2. "Index exceeds matrix dimensions. " erreur
    Par M.Chaabane dans le forum MATLAB
    Réponses: 2
    Dernier message: 04/11/2008, 16h54
  3. error : index exceeds matrix dimensions
    Par spinalrock dans le forum Images
    Réponses: 21
    Dernier message: 29/05/2008, 11h18
  4. Message d'erreur "Index exceeds matrix dimensions."
    Par bela1280 dans le forum MATLAB
    Réponses: 1
    Dernier message: 21/04/2007, 13h27
  5. Erreur "Index exceeds matrix dimensions"
    Par usama2 dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/03/2007, 00h34

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