Programme Scilab, erreur invalid index
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Programme Scilab, erreur invalid index



  1. #1
    invitec94a53e1

    Programme Scilab, erreur invalid index


    ------

    Bonjour,

    J'essayes d'écrire le programme suivant mais il y a une erreur Invalid index et je ne vois pas où elle est et comment faire pour qu'elle n'y soit plus.

    -->A=[3200,7680,12800,19200,36000,32 000,28800,8400,3840,1600];

    -->Yref=[3200,10880,23680,42880,78880,1 10880,139680,148080,151920,153 520];

    -->L=ceil(max(Yref)/2);

    -->i=1; B=A(1); C=[0,0,0,0,0,0,0,0,0,0];

    -->for i=[1:10], if B+A(i+1)>L then C(i)=1, B=0;
    -->elseif B+A(i+1)<=L then B=B+A(i+1); end;
    -->end;
    C =

    0. 0. 0. 1. 0. 0. 0. 0. 0. 0.
    !--error 21
    Invalid index.

    Merci pour votre aide

    -----

  2. #2
    invitec94a53e1

    Re : Programme Scilab, erreur invalid index

    Des idées svp?

  3. #3
    JPL
    Responsable des forums

    Re : Programme Scilab, erreur invalid index

    Déplacement. Peut-être dans ce forum ?
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  4. #4
    kwariz

    Re : Programme Scilab, erreur invalid index

    Bonsoir,

    je ne connais pas scilab mais vu le message d'erreur je dirais que le problème vient de l'utilisation de A(i+1) quand i vaut 10, il me semble que tu essayes d'accéder à un élément dont l'index sera invalide car A ne contient que 10 éléments.
    Mais bon, je peux me tromper.

  5. A voir en vidéo sur Futura
  6. #5
    invitec94a53e1

    Re : Programme Scilab, erreur invalid index

    C'est ca en fait il faut, i=[1:9] sinon on va chercher A(11) à cause du i+1 or il n'existe pas!

  7. #6
    invitec94a53e1

    Re : Programme Scilab, erreur invalid index

    J'en profite pour mettre ici mon blocage suivant dans ce problème:

    Pour y voir clair: A représente donc des activités, L une limite à ne pas dépassée par la somme des activités et C les positions des contrôles et leur nombre afin de ne pas dépasser cette limite L.

    Arrivé ici j'obtiens donc un vecteur C qui me donne le nombre de contrôle à faire ainsi que leur positions sur les 10 positions de contrôle.
    Pour L=ceil(max(Yref)/5), on obtient C=[0,0,1,1,1,0,1,0,0,0]. On a donc 4 contrôle. Maintenant je veux vérifier si la position des contrôles données plus haut est la seule solution (pour ainsi au final déterminer la plus otpimale). Je voudrais alors générer une matrice établissant toute les combinaisons possibles pour 4 contrôles.
    Matrice=[1 0 0 1 0 0 1 1 0 0
    1 1 0 0 0 1 0 0 1 0
    0 0 1 0 1 0 1 0 1 0
    ...................]
    Une fois cette matrice générée je réutilise un algorithme pour vérifier si chacune des combinaisons permettent ou non de respecter la limite L.

    Ma question est: comment généré ce genre de matrice sur scilab? Et cela est-il possible sur ce logiciel?

    Merci

Discussions similaires

  1. SCILAB-"Index invalide"
    Par invite3e1e58b5 dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 01/12/2011, 19h07
  2. [scilab]Index invalide
    Par invite1cede1ba dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 29/11/2009, 11h13
  3. aide sur un programme en scilab
    Par invite4db1c5e9 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 03/05/2009, 02h29
  4. Carte graphique ATi erreur : CRT invalid display type
    Par yowhi dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 22/07/2008, 19h50
  5. programme scilab
    Par invite359f3a58 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 25/01/2008, 13h07