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 :

Application d'un gain et un offset sur plusieurs colonnes d'une matrice


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Application d'un gain et un offset sur plusieurs colonnes d'une matrice
    Bonjour,

    J'ai un petit problème, je dispose d'une matrice récupérée à partir d'une unité d'acquisition qui se décline de la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       5.0258      0.5070     101.0000         0      -2.0342       0.5320     102.0000          0
       2.0140      1.0020     101.0000         0      -3.0106       1.0210     102.0000     0
       -1.0199     1.5060     101.0000        0       -1.0200       1.5250     102.0000    0
        ......
    La colonne 1 correspond à une valeur mesurée par le système d'acquisition sur la voie 101 (tension, courant, je peux choisir...), la 2eme colonne est le temps relatif (par rapport au lancement de l'acquisition) au moment de la prise de la valeur (en secondes), la 3eme colonne renvoie le numéro de la voie d'acquisition et la 4 ème colonne donne un signal d'alarme (0 si aucune alarme, 1 si alarme). Ensuite c'est la même chose pour la voie 102... Chaque ligne correspond alors à un scan de toutes les voies par le système d'acquisition.
    Le truc c'est que je souhaite faire mon programme de telle sorte que l'on puisse mettre autant de voies que l'on veut. De plus j'arrête l'acquisition manuellement. Donc je ne peux pas savoir à l'avance la dimension de ma matrice au niveau du nombre de lignes mais d'ordre général elle sera très grande (plus de 2000 lignes).
    Sur cette matrice je souhaite appliquer une mise à l'échelle pour les valeurs que je récupère (par exemple dans mon cas la valeur de mesure correspondant à la voie 101 (colonne1) est une tension que je veux convertir en température par l'application de l'équation : température=20*tension + 20.
    Pour les valeurs de mesure de la voie 102 (colonne5) ce sera une autre conversion (dans mon cas hygrométrie=100*tension) et ainsi de suite...

    Deux problèmes se posent à moi, le 1er est qu'il va falloir que pour certaines voies j'applique une mise à l'échelle beaucoup plus complexe (avec des polynômes à plus de 4 degrés) et le 2nd est que je voudrais éviter d'utiliser une boucle pour faire cette mise à l'échelle car j'ai peur que cele devienne trop long.
    Je souhaiterais alors récupérer une matrice de la même dimension que celle d'origine et dans laquelle toutes les valeurs de mesures aient été mises à l'échelle.
    Est-ce que quelqu'un voit un moyen d'y parvenir?
    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 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 : 52 882
    Points
    52 882
    Par défaut
    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tension = [5.0258 ;  2.0140 ; -1.0199]
     
    temperature = 20*tension + 20
    Il n'est donc pas nécessaire d'utiliser des boucles, c'est ce que l'on appelle la vectorisation.

    A lire pour bien comprendre => Gestion des matrices
    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
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    Je ne vois pas trop où il y a un problème...

    On peut imaginer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    A=[1 2 3 4 5;2 4 6 8 10; 1 3 5 7 9];
    A(:,1)=20*A(:,1)+20;
    A(:,2)=100*A(:,2);
    A
    Voilà, je viens de modifier les colonnes 1 et 2 de ma matrice A...

    C'est ce que tu cherchais à faire ?
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci pour votre aide.

    Effectivement ce n'était pas compliqué!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/09/2011, 21h31
  2. [2.5.2] Table sur plusieurs colonnes dans une page
    Par Kobe Horserider dans le forum BIRT
    Réponses: 2
    Dernier message: 17/08/2010, 15h23
  3. Opérations sur les colonnes d'une matrice
    Par george216 dans le forum MATLAB
    Réponses: 6
    Dernier message: 04/01/2010, 08h08
  4. primary key sur plusieurs colonnes d'une table
    Par hotttttsauce dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/04/2008, 12h20

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