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 :

Piloter la taille d'une matrice en fonction de variables importées [Débutant]


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 44
    Points : 34
    Points
    34
    Par défaut Piloter la taille d'une matrice en fonction de variables importées
    Je rencontre quelques problemes car je souhaite créer une matrice dont la taille et le contenu seront pilotés par des variables importées au préalable, je m’explique :
    J’ai recupéré des données d’un autre logiciel que je souhaite traiter avec MATLAB. Ces données sont récoltés chaque jour sous formes de vecteurs de meme taille (par exemple pour n jour d’essais, j’ai n vecteurs que j’appelle Hn. Exemple, pour le jour 1, je recolte le vecteur H1, pour le jour 2 je recolte H2,etc) .

    J’aimerais créer une matrice TF ou le nombre de colonnes sera égal aux nombre de H que je souhaite utiliser (exemple pour 3 jours d’essais, ma matrice TF aura 3 colonnes). Disons que mes vecteurs H comportment chacun 1000 lignes. TF aura donc le meme nombre de lignes.

    J'ai donc créer le code suivant :

    (Les vecteurs H etant deja dans le workspace)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for  i=1:f2; % f2 est le nombre de lignes de mes vecteurs
     
        for j=1:N; % N represente le nombre de jours que je souhaite analyser
                    TF(i,N)=H{j}(i,1); % je souhaite donc que chaque ligne de TF represente la donnée a la ligne i de chaque vecteur H
        end
    end
    N.B : les données H sont des fichiers .mat


    J'ai tenté les quelques techniques proposées par la FAQ mais impossible de creer la matrice TF. J'espere avoir été clair.

    Merci d'avance pour votre précieuse aide.

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Tu peux utiliser la fonction ZEROS ou les fonctions similaires:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TF = zeros(size(H));
    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Mais tu peux optimiser ton code en inversant tes boucles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TF = zeros(f2, N);
    for j = 1 : N;
        TF(:,j) = H{j};
    end
    voire direct avec cell2mat :

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    Finalement je suis passé par un autre chemin : j'ai utilisé une matrice 3D (1, f2,jour).

    Du coup, j'ai un vecteur ligne pour TF et je peux utiliser les données qui m'interesse suivant le jour dont j'ai besoin !

    Merci pour votre aide !

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

Discussions similaires

  1. augmenter la taille d'une matrice
    Par soujava dans le forum Général Java
    Réponses: 3
    Dernier message: 15/06/2011, 17h21
  2. Réponses: 0
    Dernier message: 23/02/2009, 16h42
  3. Réponses: 5
    Dernier message: 23/04/2008, 16h52
  4. [embedded] varier taille d'une matrice
    Par bassemb dans le forum MATLAB
    Réponses: 8
    Dernier message: 23/04/2008, 16h21
  5. Réponses: 5
    Dernier message: 11/06/2007, 23h05

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