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 :

Que veut dire : Warning: Colon operands must be real scalars


Sujet :

MATLAB

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Par défaut Que veut dire : Warning: Colon operands must be real scalars
    Bonjour, j'ai un (en fait plusieurs) message d'erreur qui m'ennuie, parce que je ne saisis pas quel est le problème:
    Warning: Colon operands must be real scalars
    pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [dc,fc,tco2n2,ca1,ca,nr]=co2(t,p,pa,ta,tr2,tr3,con2,ac,kap,nt,qc,dq,ec,vc,sc,nr);
    qui fait appel à la fonction :

    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
    function [dc,fc,tco2n2,a1,a,nr] = co2(t,p,pa,ta,tr2,tr3,con2,ac,kap,nt,qc,dq,ec,vc,sc,nr)
            b= bpl(t,667);
            if (nr==0 || nr>10)
                for ii=1:19
                    for jj=1:i
                        a0=(22.18)*sqrt(ta(jj,ii)/296);
                        if (jj==1)
                            if(ii==1)
                                u=1;
                            else
                                u=1.66*.8*con2*p(ii);
                                w=0.03*u/a0;
                                pave=p(ii)/2;
                                ab= uco2(qc,dq,ec,vc,sc,ta(jj,ii),pave,u,a0);
                                a(jj,ii)=ab*100;
                                a1(jj,ii)=200*a0*log(1+w/(4+w*(1+1/(pave*.1084*(298/ta(jj,ii))^0.56)))^0.5);
                            end
                            u=1.66*.8*con2*pa(ii);
                            w=.03*u/a0;
                            pave=(p(ii)+pa(ii))/2;%MODIFICATION : ERREUR!!!!p(ii+1)->p(ii)
                            ab= uco2(qc,dq,ec,vc,sc,ta(ii,jj),pave,u,a0);
                            a(ii,jj)=100*ab;
                            a1(ii,jj)=200*a0*log(1+w/(4+w*(1+1/(pave*.1084*(298/ta(ii,jj))^0.56)))^0.5);
                        else
                            pave=(pa(jj)+p(ii))/2;
                            u=1.66*.8*con2*abs(p(ii)-pa(jj));
                            w=.03*u/a0;
                            ab= uco2(qc,dq,ec,vc,sc,ta(jj,ii),pave,u,a0);
                            a(jj,ii)=ab*100;
                            a1(jj,ii)=200*a0*log(1+w/(4+w*(1+1/(pave*.1084*(298/ta(jj,ii))^0.56)))^0.5);
                            u=1.66*.80*con2*abs(pa(ii)-p(jj));
                            w=.03*u/a0;
                            ab= uco2(qc,dq,ec,vc,sc,ta(ii,jj),pave,u,a0);
                            a(ii,jj)=ab*100;
                            a1(ii,jj)=200*a0*log(1+w/(4+w*(1+1/(pave*.1084*(298/ta(ii,jj))^0.56)))^0.5);
                        end
                        tco2n2(jj,ii)=1-a(jj,ii)/30000;
                        tco2n2(ii,jj)=1-a(jj,ii)/30000;
                        a(jj,ii)=a(jj,ii)*tr2(jj,ii);
                        a(ii,jj)=a(ii,jj)*tr2(ii,jj);
                        a1(jj,ii)=a1(jj,ii)*tr3(jj,ii);
                        a1(ii,jj)=a1(ii,jj)*tr3(ii,jj);
                    end
                end
                nr=0;
            end
            nr=nr+1;
            [dc,fc]=acool(a,b,p,ac,kap,nt);
            b=bpl(t,1020);
            [dc1,fc1]=acool(a1,b,p,ac,kap,nt);
            for ind=1:18             
                dc(ind)=dc(ind+1)+dc1(ind);
                fc(ind)=fc(ind)+fc1(ind);
            end
            fc(19)=fc(19)+fc1(19);
        end
    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Je pense que la ligne suivante est fausse :

    Elle devrait être

    non ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Par défaut
    c'est pas vrai, une faute pareille !

    Merci !

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Pour compléter ma réponse, MATLAB retournait un warning car le caractère i était interprété comme un nombre complexe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >> clear i
    >> i
     
    ans =
     
            0 + 1.0000i
    D'où le terme real scalar dans le warning

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AS] Que veut dire AND
    Par jbidou88 dans le forum Flash
    Réponses: 2
    Dernier message: 31/05/2006, 11h21
  2. que veut dire (nrow >= 6) && (~nrow&0x01)
    Par gronaze dans le forum C
    Réponses: 12
    Dernier message: 24/03/2006, 15h00
  3. [WD9] Que veut dire AGL?
    Par afrikha dans le forum WinDev
    Réponses: 4
    Dernier message: 24/10/2005, 11h15
  4. Que veut dire ce symbole?
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/06/2005, 22h25
  5. Que veut dire "volatile" devant une variable ?
    Par altahir007 dans le forum C
    Réponses: 4
    Dernier message: 23/06/2004, 15h47

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