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

SAS IML Discussion :

[IML] Remplissage d'une matrice


Sujet :

SAS IML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [IML] Remplissage d'une matrice
    Bonjour,

    je compte remplir la matrice M à l'interieur d'une boucle DO . Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    %DO i=0 %TO 300%BY 100;
    %macro test(M);
    proc iml;
    %let p=i:100+i;
    use work.simulexpo;
    read POINT (&p)  var{x1} into X1;
    Y=E+X1;
    B=inv(X` * X) * X` * Y;
    /* B est un vecteur à deux lignes*/
    M[i]=(B[1]);/*le ièm element de M correspond a l'element de la  premiere ligne de B*/
    /*à la fin de la boucle DO la matrice M est remplie seulement par les premiers de la matrice B*/
    Le probléme est dans l'instruction M[i]=(B[1]);
    Comment y remedier?
    Merci de me répondre.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3 176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 176
    Points : 16 294
    Points
    16 294
    Par défaut
    Bonjour,
    Pourrais-tu nous donner les messages de ta log!
    Car tu as déjà un souci dans ton code : tu utilises des %DO à l'extérieur de tes macro-programmes!

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    voici le code:

    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
    %macro test(i,cst);
    %let j=(&i)+1;
    %let k=(&i)+100;
    %let p=(&j):(&k);
    use work.simulexpo;
    read POINT (&p) var{x1} into X1;
    use work.simulgaus;
    read point (&p) var{er} into E;
    C=E-E+1;
    X=C||X1;
    Y=C+X1+E;
    B=inv(X` * X) * X` * Y;
    cst=B[1,1];
    %mend test;
    proc iml;
    M=J(2,1);
    do i=1 to 200 by 100;
    %test(i,cst);
    M[i,1]=cst;
    print((M[i,1]));
    end;
    quit;
    /*je veux recuperer les resultats de l'estimation mco pour les 2 echantillons dans une matrice M*/
    Le journal:

    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
    514  proc iml;
    NOTE: IML Ready
    515  M=J(2,1);
    516  do i=1 to 200 by 100;
    517  %test(i,cst);
    518  M[i,1]=cst;
    519  print((M[i,1]));
    520  end;
    ERREUR: (execution) Invalid subscript or subscript out of range.
     
     operation : [ at line 518 column 2
     operands  : M, I, *LIT1015, CST
     
    M      2 rows      1 col     (numeric)
     
     1.0224495
             1
     
    I      1 row       1 col     (numeric)
     
           101
     
    *LIT1015      1 row       1 col     (numeric)
     
             1
     
    CST      1 row       1 col     (numeric)
     
       1.10215
     
     statement : ASSIGN at line 518 column 1
    521
    522
    523  quit;
    NOTE: Exiting IML.
    NOTE: Le Système SAS a interrompu le traitement de cette étape en raison d'erreurs.
    NOTE: La procédure IML a utilisé (Durée totale du processus) :
          temps réel                   0.05 secondes
          temps processeur   0.06 secondes
    J'espere que vous pouvez me trouver une solution le plutot que possible.
    MERCI

Discussions similaires

  1. remplissage d'une matrice
    Par yasinfo dans le forum JBuilder
    Réponses: 2
    Dernier message: 31/12/2008, 00h25
  2. SAS IML - Existence d'une matrice
    Par Kevin_18 dans le forum SAS IML
    Réponses: 1
    Dernier message: 14/08/2008, 16h01
  3. Remplissage d'une matrice
    Par vg-matrix dans le forum C
    Réponses: 5
    Dernier message: 29/05/2008, 00h26
  4. Algorithme de remplissage d'une matrice
    Par bettiboo94 dans le forum MATLAB
    Réponses: 1
    Dernier message: 18/05/2008, 06h53
  5. [Débutant] Remplissage d'une matrice
    Par Keldou dans le forum Octave
    Réponses: 2
    Dernier message: 24/04/2007, 20h54

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