Trouver un ensemble de couples (Matlab)
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Trouver un ensemble de couples (Matlab)



  1. #1
    invite92876ef2

    Trouver un ensemble de couples (Matlab)


    ------

    Bonjour à tous,

    En raison des données trop grosses que j'aie à écrire, je ne peux pas faire de boucles dans le programme, sauf une seule.

    J'ai une valeur s, dans [0,smax].

    Soit maintenant J une fonction de [0,imax] dans [0,smax], imax>smax.

    Je cherche l'ensemble des couples (i,j) tels que |J(i)-J(j)|=s, pour tous les s de [0,smax], quelque soient i,j de [0,imax], imax>smax.

    La seule boucle est donc (for s=1:smax).

    Y a-t-il une fonction spéciale sur Matlab qui fasse cela ?

    Merci bien !

    -----

  2. #2
    inviteb9f49292

    Re : Trouver un ensemble de couples (Matlab)

    Il faut trouver le moyen de créer la matrice M(i,j) = abs (J(i) - J(j)), puis la fonction "find" te retourne les indices vérifiant un critère, donc find(M == s)...
    Pour créer la matrice, si J est en ligne je ferais un truc du genre
    Code:
    A = repmat (J, 1, length(J));
    M = abs (A - A');

  3. #3
    invite92876ef2

    Re : Trouver un ensemble de couples (Matlab)

    Merci de votre réponse !

    Si alors j'écris :

    for s=1:smax
    [alpha(s),beta(s)] = find(M==s);
    end

    Va-t-il bien le mettre les i dans alpha et les j dans beta, pour tout s ?
    Merci !

  4. #4
    inviteb9f49292

    Re : Trouver un ensemble de couples (Matlab)

    Effectivement, en revanche, et surtout si smax est important, j'allouerai alpha et beta avant de lancer la boucle:
    Code:
    alpha = zeros (smax, 1);
    beta  = alpha;
    sinon, le comportement de MATLAB sera, à chaque tour de boucle, d'allouer deux tableaux de longeur s pour y recopier les s-1 premières valeurs et y ajouter la dernière, puis libérer la mémoire des s-1 anciennes valeurs.

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

    Re : Trouver un ensemble de couples (Matlab)

    Bonjour,

    Merci de votre réponse.

    Ainsi les i,j collectés, je veux sommer tous les éléments d'une autre très grosse matrice de coefficients i,j.
    Si "données" désigne cette matrice, je ne vois pas trop quoi taper pour l'avoir...

    Merci encore !

  7. #6
    inviteb9f49292

    Re : Trouver un ensemble de couples (Matlab)

    Si "données" désigne cette matrice, je ne vois pas trop quoi taper pour l'avoir...
    Je n'ai pas compris, tu peux préciser ce que tu veux sommer? Si c'est les éléments d'une matrice N aux indices r et c (ces derniers étants des vecteurs d'indices), alors
    Code:
    sum (sum (N(r, c)))

Discussions similaires

  1. Ensemble des couples (x,y) tel que x^3+y^3<1<x+y inclu dans ]0,1[^2
    Par invite09991160 dans le forum Mathématiques du collège et du lycée
    Réponses: 2
    Dernier message: 05/11/2012, 21h56
  2. Trouver des couples (a,b)
    Par invitee19b2741 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 11/11/2011, 19h50
  3. Complexe = l’ensemble des couples de réels d’une structure de corps ?
    Par invite6754323456711 dans le forum Mathématiques du supérieur
    Réponses: 88
    Dernier message: 23/11/2009, 17h57
  4. Comment trouver les couples oxydant/réducteur
    Par inviteb33108a8 dans le forum Chimie
    Réponses: 15
    Dernier message: 30/12/2008, 22h59
  5. help me de trouver des liens de l'oscillateurs harmonique couplés
    Par invite58556600 dans le forum Physique
    Réponses: 0
    Dernier message: 03/02/2007, 00h06