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 :

Matrice complexe


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Matrice complexe
    Bonjour,


    Tout d'abord merci beaucoup pour ce superbe forum, j'ai pu comprendre beaucoup mieux MATLAB.
    Mais j'ai un problème qui semble être assez complexe, je butte dessus depuis maintenant 1 semaine.

    Je vous explique.

    J'ai une matrice issue d'un fichier Excel.
    Elle fais 129 colonnes et plusieurs milliers de lignes.
    Ma ligne 1, colonnes 1 à 129 correspond à des enregistrements de 4 channels identiques.
    Et ma colonne 1 a des temps.

    Le problème est que j'ai uniquement 23 enregistrements de 120 secondes à chaque fois, et que je ne veux étudier mes channels uniquement pour ces enregistrements. Le reste partant à la poubelle.

    Donc ce que je souhaite c'est pour mon premier enregistrement que j’appelle timestamps1 qui dure 120 secondes. Je souhaite trouver la plus proche valeur dans ma colonne de celle que j'ai en théorie.
    Pour cela j'ai déjà tenté


    Je souhaite donc connaitre la colonne (K et G) de la valeur la plus proche de mon timestamps 1 et de la fin de mon enregistrement, puis après j'avance avec k=1:n (n étant le nombre de colonne que j'ai)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [row(K), col(K)]=min(abs(spike(,1)-timestamps(K)
    [row(G), col(G)]=min(abs(spike(,1)-(timestamps(K)+120)
    Maintenant je suis censé connaitre la colonne de début et de fin de chacun de mes enregistrements.
    Mais ça ne marche pas.

    Ensuite je dois pouvoir dire pour ma ligne 2, la moyenne de mes valeurs pour chaque enregistrement.
    En gros obtenir à la fin pour l'enregistrement 1 de 120 seconde qui commence à la ligne X jusqu'à la ligne Y pour ma colonne 2 j'ai une moyenne de, pour ma colonne 3 une moyenne de etc... Et ce pour l'ensemble de mes enregistrements.
    Mais je n'arrive pas à faire la moyenne (Average) de ma colonne 1 (puis 2 puis 3 etc...) entre mon row K et mon row G.

    Est-ce que quelqu'un peut m'aider?

  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 302
    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 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Citation Envoyé par danielD Voir le message
    Mais ça ne marche pas.
    Tu devrais relire attentivement la documentation de la fonction MIN.
    Les deux arguments de sortie sont de natures différentes
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Donc suite....
    Donc voila...

    J'ai réussit tant bien que mal a trouver cela:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [a b]= size (matricerat3)
     
     
    K =1:b;
        F= 1: length (events);
                records = ((events (F,1)) - matricerat3(K,:));
                ends= ((events(F,1)+120) - matricerat3(K,:));
                [m row]=min(records>=0);
                [n rowf]= min (ends>=0);
                frequency= rowf - row
                M (K,F)= frequency

    Donc ma matrice rat3 correspond a 18 enregistrement a des temps différents, et des longueurs différentes.
    J'ai donc prix la plus longue et j'ai remplacé les NAN par 0 pour le reste. Ensuite je prend ma matrice event avec mes temps de reference, j'en ai 23.
    Je cherche donc à trouver la colonne pour chaque enregistrement ou je suis le plus proche de mes enregistrement et de la fin de mon enregistrement (120s après le début).
    Puis a connaitre pour chaque enregistrement le nombre de colonne entre la fin et le début pour avoir une fréquence.

    Mais ça bloque pour la soustraction et je comprend pas pk.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ça bloque... c'est à dire tu obtiens une erreur ? Si oui laquelle ?
    As-tu consulté la Messages d'erreur et avertissements pour voir ce quelle signifiait ?

Discussions similaires

  1. création d'une matrice complexe
    Par chricy dans le forum MATLAB
    Réponses: 1
    Dernier message: 15/05/2014, 12h20
  2. vecteur propre d'une matrice complexe
    Par takout dans le forum Mathématiques
    Réponses: 2
    Dernier message: 02/01/2013, 15h58
  3. Exponentielle d'une matrice complexe
    Par Niko95 dans le forum Fortran
    Réponses: 10
    Dernier message: 05/03/2009, 14h50
  4. triangulation d'une matrice complexe
    Par lili81 dans le forum Mathématiques
    Réponses: 9
    Dernier message: 14/06/2008, 15h12
  5. Réponses: 1
    Dernier message: 14/05/2007, 21h52

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