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 :

Interpolation matrice creuse


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Interpolation matrice creuse
    Bonjour a tous,
    est-ce que quelqu'un sait s'il existe une fonction Matlab permettant d'interpoler un matrice creuse? "interp2" ne va pas et pour l'instant je n'y arrive pas avec "griddata". Plus precisemment j'ai une matrice 17*6 mais seuleument 15 valeurs. La matrice doit etre "lisse". J'aimerais pouvoir trouver les valeurs manquantes (cubic splines...).

    Merci d'avance!

  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 316
    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 316
    Points : 52 951
    Points
    52 951
    Par défaut
    Tu pourrais mettre cette matrice dans un fichier mat et l'attacher à un message (dans une archive zip ou rar) ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bien sur. J'ai mis la matrice creuse dans le m file. Les zero sont en fait des valeurs inconnues (c'est le probleme quand je charge la marice a partir de Excel, ca interprete le vide comme des zero et ensuite ca fait rater toute l'interpolation...). Pour etre plus clair, j'ai aussi colle dans le fichier excel le type de resultat que j'aimerais obtenir.
    Merci
    Fichiers attachés Fichiers attachés

  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 316
    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 316
    Points : 52 951
    Points
    52 951
    Par défaut
    Essaie avec INPAINT_NANS :

    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
    A=[    0.5925         0         0         0         0         0
             0         0         0         0         0         0
             0         0    0.7695         0         0         0
             0         0         0         0         0         0
             0         0         0         0    0.8225         0
             0         0         0         0         0         0
        0.5458         0         0         0         0         0
             0         0    0.6405         0         0         0
             0         0         0         0         0         0
             0         0         0         0         0         0
             0         0         0         0         0         0
             0    0.4393         0         0         0         0
             0         0    0.4675         0         0    0.4775
             0         0         0         0         0         0
             0         0         0         0    0.4370         0
        0.3668         0         0         0         0         0]
     
     
    idx = A==0;
     
    A(idx) = nan;
     
    Ai = inpaint_nans(A);
     
    figure
    surf(Ai)
    hold on
     
    [y,x] = find(~idx);
    plot3(x(:),y(:),A(~idx),'r*')
    Cette fonction est disponible sur le FEX : inpaint_nans - Interpolates (& extrapolates) NaN elements in a 2d array

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Top! Je regarderai plus en details demain mais c'est exactement ce que je cherchais.
    Merci pour l'aide, ca me depanne bien.

  6. #6
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    En y regardant de plus pres, j'ai une autre question.

    Dans la matrice a interpoler, l'espacement des donnees n'est pas constant (cf. le fichier excel, l'increment des abscisses et ordonnees n'est pas contant). Or dans INPAINT_NANS(), on ne peut passer que "l'interieur" Z de la matrice (contrairement a INTERP2() ou GRIDDATA() ou on peut passer les X et Y aussi).

    Alors je peux rajouter des NaNs pour m'aligner sur le plus petit increment et ainsi obtenir des abscisses/ordonnees a increments constants mais suivant les matrices, ca peut n'etre qu'approximatif et peut etre qu'il y a plus intelligent ou une autre fonction...

    Merci

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

Discussions similaires

  1. Code pour matrice creuse (sparse matrix)
    Par Xavier dans le forum C++Builder
    Réponses: 1
    Dernier message: 02/11/2007, 17h41
  2. Reshape d'une matrice creuse
    Par levit dans le forum MATLAB
    Réponses: 4
    Dernier message: 11/07/2007, 13h46
  3. interpolation matrice de rotation
    Par harsh dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 28/12/2006, 10h47
  4. Matrices creuses de double
    Par panda31 dans le forum C
    Réponses: 7
    Dernier message: 25/04/2006, 09h46
  5. Matrice creuse
    Par lamar dans le forum C
    Réponses: 16
    Dernier message: 10/12/2005, 00h55

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