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 :

Message d'erreur horzcat


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Message d'erreur horzcat
    Bonjour,

    j'ai un message d'erreur sur matlab que je ne comprends pas. J'ai tout vérifié mais je ne vois pas pourquoi ce message:

    ??? Error using ==> horzcat
    The following error occurred converting from logical to char:
    Error using ==> char
    Conversion to char from logical is not possible.
    
    Error in ==> char.set at 9
        F = evalin('caller',['lmi(' strrep(varargin{1},'''','''''') ','  '''' varargin{2} ''''')']);
    
    Error in ==> contraintes at 104
                    C = C+set( sum(X(:,deb(j):fin(j)),2) <= ones(Tf,1),
                    'Contrainte sos1');
    
    Merci de votre aide

  2. #2
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    ça a l'air pas trop joli le code...

    Pourrais-tu nous donner le code complet qui génère l'erreur ?

    Rapidement je dirais qu'il n'est pas content car varargin{1} est de type logical (vaut 0 ou 1) sachant que varargin{1} est : sum(X(:,deb(j):fin(j)),2) <= ones(Tf,1), qui n'est effectivement pas de type char du tout.
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    le code "simplifié" est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Tf = 24;
    X=binvar(Tf,140,'full');
    deb = [1 5 10 26 106 111];
    fin = [4 9 25 105 110 140];
    C = [];
    for j=1:length(deb)
      C = C+set( sum(X(:,deb(j):fin(j)),2) <= ones(Tf,1),'Contrainte sos1');
    end
     
    fobj =...
    solvesdp(c,fobj);

  4. #4
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Et qu'est-ce que cette ligne de code est censée faire selon toi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set( sum(X(:,deb(j):fin(j)),2) <= ones(Tf,1),'Contrainte sos1')
    Règles du Forum

    Adepte de la maïeutique

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    cette ligne permet de rajouter un ensemble de contrainte qui est la somme des variables doit être inférieure ou égale à un

  6. #6
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Bon on a du mal à se comprendre, je parle code et toi tu me parles de ce que tu penses que ça fait.

    Quand tu appelles la fonction SET quelle est la fonction que tu souhaites appeler ?

    Te rends-tu compte que ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(X(:,deb(j):fin(j)),2) <= ones(Tf,1)
    te retourne un LOGICAL valant 0 ou 1 ?

    Ensuite tu vas additionner un vecteur vide C avec autre chose (on ne sait pas encore très bien quoi).

    Enfin bref, tu manipules des tas d'objets différents sans avoir vraiment l'air de savoir de quoi il s'agit
    Règles du Forum

    Adepte de la maïeutique

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Dsl je n'avais pas compris exactement. C'est bien ça le problème. Normalement je dois remplir C avec des char, cette expression doit être un char mais c'est un logical et je ne vois pas pour quoi?

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    sum(X(:,deb(j):fin(j)),2) <= ones(Tf,1)

    X est une matrice de variables binaires (x11,x21,x31...) donc l'expression en gros c'est x11 + x21 +...<=1 qui est une expression et non un logical. Si les variables x11.. étaient fixées, l'expression renverrait bien un logical. J'espère que vous m'avez compris. Merci pour l'aide

  9. #9
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Quand tu appelles la fonction SET quelle est la fonction que tu souhaites appeler ?
    Si tu dois mettre des char dans C la concaténation ne se fait certainement pas avec des +.

    Mais bon ton message d'erreur vient d'abord de l'appel à la fonction SET.
    Règles du Forum

    Adepte de la maïeutique

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Donc je me suis rendue compte que le message apparaissait à partir d'une certaine itération. A cette itération, en effet deb(j):fin(j) n'était pas bien défini d'ou le problème donc j'ai rajouté des gardes fous. Merci de votre aide.

Discussions similaires

  1. [TSocket] Message d'erreur
    Par rgz dans le forum Web & réseau
    Réponses: 6
    Dernier message: 04/07/2003, 09h16
  2. Surcharger le message d'erreur après un OnException
    Par Tirlibibi dans le forum XMLRAD
    Réponses: 2
    Dernier message: 24/04/2003, 11h42
  3. Réponses: 4
    Dernier message: 04/03/2003, 01h05
  4. [CR] Message d'erreur
    Par nono1 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 11/09/2002, 14h54
  5. Réponses: 2
    Dernier message: 27/05/2002, 19h46

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