Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

Répondre

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
cinquante et un moins trente neuf
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Retour

Résumé de la discussion (messages les plus récents en premier)

yoshi
16-05-2011 12:02:56

Re,

Pour t'aider efficacement, il faudrait déjà que je comprenne ce que fait chacune de ces lignes, por ce n'est pas le cas :

    Auto_Cor1=Auto_Cor1.*MASQUE;
    G1=abs(Auto_Cor1).^2;

    Auto_Cor2=Auto_Cor2.*MASQUE;
    G2=abs(Auto_Cor2).^2;

    Auto_Cor3=Auto_Cor3.*MASQUE;
    G3=abs(Auto_Cor3).^2;

    XCor1=XCor1.*MASQUE;
    G4=abs(XCor1).^2;

    XCor2=XCor2.*MASQUE;
    G5=abs(XCor2).^2;

    XCor3=XCor3.*MASQUE;
    G6=abs(XCor3).^2;

    [A1 ID1] = max(Auto_Cor1(:));
    [A2 ID2] = max(Auto_Cor2(:));
    [A3 ID3] = max(Auto_Cor3(:));

    [M1 id1] = max(XCor1(:));
    [M2 id2] = max(XCor2(:));
    [M3 id3] = max(XCor3(:));

    M123=[M1 M2 M3];
    A123=[A1 A2 A3];

    MAXC=max(M123)
    MINA=min(A123)

Va donc voir mon programme modifié ici : http://www.bibmath.net/forums/viewtopic.php?id=4624 et les explications qui vont avec...

@+

stormin
15-05-2011 15:33:33

Merci pour la réponse,

 

Yoshi a écrit :

T'es quand même du genre obstiné : je ne connais pas matlab, mais je t'ai donné le lien d'un forum où on parle spécifiquement de Matlab et où tu es sûr à 100 % d'avoir la bonne réponse et tu préfères poser la question ici...

J'ai signalé dans mon message,que je sais bien que vous êtes pas spécialisé en Matlab?Pour le forum developpez,j'ai déjà poser la question,mais sans réponse,et si j'insiste a poster ma question dans ce forum, c'est pour deux raisons :
1-Je suis convaincu,de vos compétences.
2-Mon problème est algorithmique.(Je parle de la logique de boucle )

Yoshi a écrit :

Sinon, on réalise ce travail sur papier avec une petit matrice exemple et on exécute pas à pas les étapes lesquelles
est censé passer ton programme.
Puis dans ton programme, à chaque étape correspondante, tu poses un "mouchard", c'est à dire n'importe quoi qui te dira si ton programme passe bien par là, et si est le résultat attendu est le bon....

Oui,j'ai compris ,et j'ai déja fait cela,je trouve que la variable :

MASQUE garde la même indice,c'est pour cette raison que l'exécution reste coincer.

yoshi
15-05-2011 14:51:57

Re,

et si tu commençais par répondre ici :
http://www.bibmath.net/forums/viewtopic.php?id=4624

sinon, je ne vois pas pourquoi je me creuserais la cervelle pour quelqu'un qui ne réagit pas même quand il a obtenu une réponse...

Si ça ne marche pas, une piste est de lire les messages d'erreur et de les fournir.

Sinon, on réalise ce travail sur papier avec une petit matrice exemple et on exécute pas à pas les étapes lesquelles
est censé passer ton programme.
Puis dans ton programme, à chaque étape correspondante, tu poses un "mouchard", c'est à dire n'importe quoi qui te dira si ton programme passe bien par là, et si est le résultat attendu est le bon...
Tu comprends ?..
Et ça c'est valable dans n'importe quel langage de programmation.

T'es quand même du genre obstiné : je ne connais pas matlab, mais je t'ai donné le lien d'un forum où on parle spécifiquement de Matlab et où tu es sûr à 100 % d'avoir la bonne réponse et tu préfères poser la question ici...
En plus, il se trouve que je sais pas (ou plus ?) ce qu'est une "transformée de Fourier"
J'avoue que je ne comprends pas...

Et là tu vas répondre dans une semaine, en ouvrant une autre discussion sur un autre sujet ?

@+

stormin
15-05-2011 14:40:02

Bonjour,

Je sais bien que vous êtes pas spécialisé en Matlab,mais ma question est à propos de comment faire la boucle,j'aimerais avoir l'idée ou bien savoir pourquoi mon programme ne fonctionne pas.

Dans Matrice,je devrais travailler avec la transformée de Fourier du max et min,je me bloque sur le fait que comment après chaque fois que je mets un zéro,vérifie si le max et min restent encore max et min,sinon,je dois chercher le nouveau max et min pour utiliser la transformée de Fourier de nouveau max et min.

J'ai fait la tentative suivante:

epse=0.01;
epsilon = 0.01;
MASQUE=ones(256,256);

somme = sum(MASQUE(:));

while(abs(somme)>epsilon)

    Auto_Cor1=Auto_Cor1.*MASQUE;
    G1=abs(Auto_Cor1).^2;

    Auto_Cor2=Auto_Cor2.*MASQUE;
    G2=abs(Auto_Cor2).^2;

    Auto_Cor3=Auto_Cor3.*MASQUE;
    G3=abs(Auto_Cor3).^2;

    XCor1=XCor1.*MASQUE;
    G4=abs(XCor1).^2;

    XCor2=XCor2.*MASQUE;
    G5=abs(XCor2).^2;

    XCor3=XCor3.*MASQUE;
    G6=abs(XCor3).^2;

    [A1 ID1] = max(Auto_Cor1(:));
    [A2 ID2] = max(Auto_Cor2(:));
    [A3 ID3] = max(Auto_Cor3(:));

    [M1 id1] = max(XCor1(:));
    [M2 id2] = max(XCor2(:));
    [M3 id3] = max(XCor3(:));

    M123=[M1 M2 M3];
    A123=[A1 A2 A3];

    MAXC=max(M123)
    MINA=min(A123)

    if     MAXC==M1
        trans_four_C=TF7;
    elseif MAXC==M2
        trans_four_C=TF8;
    else
        trans_four_C=TF9;
    end

    if     MINA==A1
        trans_four_A=TF1;
    elseif MINA==A2
        trans_four_A=TF2;
    else
        trans_four_A=TF3;
    end

    %% DC
    Matrice=abs(trans_four_C).*cos(angle(trans_four_C) - angle(trans_four_A))-epse*abs(trans_four_A);

    somme = sum(Matrice(:))

    if (abs(somme)<epsilon),break,end

    if somme>0
        [maximum indice] = max(Matrice(:));
        Matrice(indice) = 0;
        MASQUE(indice) = 0;
    else
        [minimum indice] = min(Matrice(:));
        Matrice(indice) = 0;
        MASQUE(indice) = 0;
    end
    somme = sum(Matrice(:));
end

Le programme reste bloqué dans l'exécution, et lorsque je vérifie avec Debug l'indice du MASQUE, je trouve à chaque fois que ce dernier ne change pas.

Merci

Pied de page des forums