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 de table


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Par défaut Problème d'index de table
    Bonjour,

    Voici mon problème. Je calcule un index d'une table à partir des données présentes dans une autre table et qui sont censées être des entiers positifs.

    Lorsque j'appelle la valeur j2 (en rouge dans le script) j'ai le message suivant :
    Subscript indices must either be real positive integers or logicals
    Je comprends qu'il faut convertir la valeur j2 en entier positif. J'ai essayé avec j2=int8(j2) mais ca n'a pas marché.
    Je vous remercier d'avance pour votre aide.
    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
    
        for j=1:n
            for i=1:m
                if cloud.reflectivity(i,j,k) >= refl_thresold,
                   face2.presence(j,k)=1;
                   face2.i(j,k)=i;
                   face2.j(j,k)=j;
                   face2.k(j,k)=k;
                   j2=abs(face2.j(i,k));
                   if face2.i(j,k)~=face1.i(j2,k)    
                face.presence(j+m,k)=1;
                   face.i(j+m,k)=i;
                   face.j(j+m,k)=j;
                   face.k(j+m,k)=k;
                   elseif face2.i(j,k)==face1.i(face2.j(i,k),k)
                   end;
                   break;
                elseif cloud.reflectivity(i,j,k) < refl_thresold,
                   face2.presence(j+m)=0;
                   face2.i(j+m,k)=0;
                   face2.j(j+m,k)=j;
                   face2.k(j+m,k)=k;
                   face.presence(j+m)=0;
                   face.i(j+m,k)=0;
                   face.j(j+m,k)=j;
                   face.k(j+m,k)=k;
                end;
            end;
        end;

  2. #2
    Membre expérimenté Avatar de LordPeterPan2
    Inscrit en
    Février 2007
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 247
    Par défaut
    peut être que j2 vaut entre 0 et 0.5 et donc int8(j2) vaut 0 ou si j2 est négatif le transformé en entier ne changera pas son signe

  3. #3
    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
    Es-tu bien sûr que c'est à cet endroit là que tu as l'erreur ?
    cela parait étrange car a priori j étant égale à 1:n (donc des entiers positifs dont la valeur absolue est la valeur elle-même), j2 étant égal à j, je ne vois pas comment j2 pourrait être autre chose que 1..n...
    Peux-tu afficher la valeur de j2 pour voir à quel moment ça plante avec un disp ?

    Ceci étant dit ton algo me parait bien obscur.
    Si on part du principe que le premier test est toujours vrai et que l'on boucle 2 gois :
    pour j=1, i=1
    face2.j(1,k)=1
    pour j=1, i=2
    face2.j(1,k)=1
    Mais :
    face2.j(2,k) = ???
    face2.j est-il défini auparavant ?

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Par défaut
    J'ai trouvé !

    Le problème venait que les valeurs de j2 était parfois mises à 0 dans la table.
    Je les ai remplacées par "1" et le problème est résolu.
    Alors vous allez me dire "1 n'est pas égale à 0" !!!
    Mais ce n'est pas un prbolème puisque pour chaque valeur de j2, j'ai un flag qui me dit si je dois prendre en compte la valeur ou pas...
    Bref, je me comprend
    Ce qu'il fallait retenir, c'est qu'un index ne peut être nul.

    En tout cas, merci beucoup pour votre bonne volonté. C'est sympa.

    A+

Discussions similaires

  1. Problème d'index dans une table Oracle
    Par azouzmenai24 dans le forum PL/SQL
    Réponses: 5
    Dernier message: 13/04/2015, 10h26
  2. Réponses: 2
    Dernier message: 24/08/2012, 14h20
  3. [ADO][Access2007] Problème d'indexation avec mes tables
    Par melles dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/11/2008, 20h11
  4. Problème d'index avec les nested tables
    Par zeinoul1 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 26/10/2006, 12h28
  5. Problème de création de table sous MySql
    Par ducamba dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2003, 09h59

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