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

R Discussion :

L'argument est de longueur vide et indice hors limite


Sujet :

R

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut L'argument est de longueur vide et indice hors limite
    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
    algo<-function(T,N){
    K<-1
    M<-matrix(nrow = N, ncol = N, data = 1)
    M1<-matrix(nrow = N, ncol = N, data = -1)
    while (compareEqual(M,M1)=='FALSE'){
    M<-matrix(nrow = N, ncol = N, data = 1)
    M1<-matrix(nrow = N, ncol = N, data = -1)
    for(l in -K:-1){
    i<-0
    j<-0
    i = sample(1:N,1,replace=TRUE)
    j = sample(1:N,1,replace=TRUE)
    if(i==1){
    	if(j==1){
    		Z<-exp((2/T)*M[1,1]*(M[1,2]+M[2,1]));
    		Z1<-exp((2/T)*M1[1,1]*(M1[1,2]+M1[2,1]));
    cat("---------------------------------------------------------------------------1\n")
     
    		}
    	if(j==N){
    		Z<-exp((2/T)*M[1,N]*(M[1,N-1]+M[2,N]));
    		Z1<-exp((2/T)*M1[1,N]*(M1[1,N-1]+M1[2,N]));
    cat("---------------------------------------------------------------------------2\n")
    		}
    	else{
    		Z<-exp((2/T)*M[i,j]*(M[i,j-1]+M[i,j+1]+M[i+1,j]));
    		Z1<-exp((2/T)*M1[i,j]*(M1[i,j-1]+M1[i,j+1]+M1[i+1,j]));
    cat("---------------------------------------------------------------------------3\n")
    		}
    	}
     
    if(i==N){
    	if(j==1){
    		Z<-exp((2/T)*M[N,1]*(M[N-1,1]+M[N,2]));
    		Z1<-exp((2/T)*M1[N,1]*(M1[N-1,1]+M1[N,2]));
    cat("---------------------------------------------------------------------------4\n")
    		}
    	if(j==N) {
    		Z<-exp((2/T)*M[N,N]*(M[N,N-1]+M[N-1,N]));
    		Z1<-exp((2/T)*M1[N,N]*(M1[N,N-1]+M1[N-1,N]));
    	cat("---------------------------------------------------------------------------5\n")
    		}
    	else{
    		Z<-exp((2/T)*M[i,j]*(M[i-1,j]+M[i,j+1]+M[i,j-1]));
    		Z1<-exp((2/T)*M1[i,j]*(M1[i-1,j]+M1[i,j+1]+M1[i,j-1]));
    	cat("---------------------------------------------------------------------------6\n")
    		}
     
    	}
    else{
    	Z<-exp((2/T)*M[i,j]*(M[i-1,j]+M[i+1,j]+M[i,j+1]+M[i,j-1]));
    	Z1<-exp((2/T)*M1[i,j]*(M1[i-1,j]+M1[i+1,j]+M1[i,j+1]+M1[i,j-1]));
    	cat("---------------------------------------------------------------------------7\n")
    	}
     
    V<-runif(1,0,1)
    Y<-V-Z
    Y1<-V-Z1
    if(Y<0){
    	M[i,j]<-(-1);
    cat("---------------------------------------------------------------------------8\n")
    	}
    else{
    	M[i,j]<-1;
    cat("---------------------------------------------------------------------------9\n")
    	}
     
    if(Y1<0){
    	M1[i,j]<-(-1);
    cat("---------------------------------------------------------------------------10\n")
    	}
    else{
    	M1[i,j]<-1;
    cat("---------------------------------------------------------------------------11\n")
    	}
    }
    cat(k,"\n");
    K<-2*K;
    cat(k,"\n");
    }
    M
    }
    Voilà mon code, l'erreur: l'argument est de longueur nulle est au niveau du test de Y (if (Y<0)
    Je n'arrive pas à voir pourquoi la valeur nulle est affectée à Y et pourquoi il y a un dépassement dans ma matrice. Si vous pouviez m'aider ça serait génial. Merci d'avance

    Pour la fonction compareEqual j'ai téléchargé le package compare.

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Points : 461
    Points
    461
    Par défaut
    Citation Envoyé par hmimiz Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    algo<-function(T,N){
    ....
    if(i==N){
    ...
    }
    else{ 
    	Z<-exp((2/T)*M[i,j]*(M[i-1,j]+...
    }
    ...
    Voilà mon code, l'erreur: l'argument est de longueur nulle est au niveau du test de Y (if (Y<0)

    Salut,

    Ca plante pour i =1.
    Z est null puisque i-1 vaut 0 et que la ligne 0 est out of limit.
    Donc Y est null d'où l'erreur.

    J'en profite pour te faire remarquer que ton code est franchement pas très lisible et que l'emploi des else n'arrange rien.
    Il y a probablement moyen de rendre tout ca un peu plus light.


    Edit :
    Dernière chose, le compareEqual du package compare n'est pas utile.
    Il suffit de faire: !all(M==M1), ca évite d'installer un package juste pour ca.

Discussions similaires

  1. StringGrid Indice hors limite
    Par DURVILLE dans le forum Langage
    Réponses: 7
    Dernier message: 02/04/2011, 11h12
  2. erreur indice hors limites
    Par ryma87rh dans le forum C++
    Réponses: 9
    Dernier message: 19/03/2009, 08h55
  3. Indice hors limite(0)
    Par Morfus dans le forum Langage
    Réponses: 17
    Dernier message: 11/09/2008, 10h42
  4. [TListBox] Problème "Indice hors limite (-1)"
    Par renorx dans le forum Composants VCL
    Réponses: 16
    Dernier message: 08/12/2005, 17h47
  5. Erreur "indice hors limite(0)" non comprise
    Par Bruno1905 dans le forum Bases de données
    Réponses: 9
    Dernier message: 10/06/2005, 12h02

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