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 :

Ajout d'une ligne dans une matrice à partir d'une boucle for


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    février 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : février 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Ajout d'une ligne dans une matrice à partir d'une boucle for
    Bonjour,

    J'aimerais, à partir d'une boucle for, ajouter à chaque itération une ligne dans une matrice.
    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
     
    j=2;
    for i=j:j
    C{i,1}={d(ma(1).name};
    C=vertcat(C{1},C{i});
    valid=uicontrol(f,...
            'Style','pushbutton',...
            'String','Validation',...
            'Position',[1150,150,80,30],...
            'Callback',['val(i,:)=[inten1 inten2 inten3 inten4 inten5;','val=vertcat(val(1,:),val(i,:));']);
    bouton_suite_desc=uicontrol(f,...
            'Style','pushbutton',...
            'String','Suite',...
            'Position',[1200,70,70,30],...
            'Callback','suite_desc');
    j=j+1;
    end
    A chaque fois que j'appuie sur le bouton "suite", je voudrais que le nom de la photo s'ajoute dans C, et à chaque fois que j'appuie sur le bouton "validation", les valeurs de val(i,:) s'ajoutent dans val.
    Pour l'instant, j'arrive à ajouter la première itération mais après rien ne va plus!!!

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance en conception mécanique et prototypage
    Inscrit en
    novembre 2006
    Messages
    20 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance en conception mécanique et prototypage

    Informations forums :
    Inscription : novembre 2006
    Messages : 20 175
    Points : 54 324
    Points
    54 324
    Par défaut
    Enregistres l'exemple suivant dans un fichier m :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    function test
     
    	% Initialisation d'une matrice vide
    	M=[];
     
    	% Stockage de cette matrice pour la réutiliser ultérieurement
    	figure('userdata',M);
     
    	% Ajout des boutons et du texte
    	uicontrol('units','normalized',...
            'position',[.1 .1 .1 .05],...
            'string','-',...
            'callback',@incrmat)
     
    	uicontrol('units','normalized',...
            'position',[.1 .2 .1 .05],...
            'string','+', ...
            'callback',@incrmat)
     
    	uicontrol('units','normalized',...
            'position',[.25 .15 .2 .05],...
            'style','text',...
            'string','M is an empty matrix');
     
    % Fonction exécutées losque l'on clique sur un des deux boutons
    function incrmat(obj,event)
    % Ici "obj" identifie le bouton sélectionné
     
    	% Récupération de la matrice M
    	M=get(gcf,'userdata');
     
    	% Sur quel bouton a-t-on appuyée ?
    	if strcmp(get(obj,'string'),'+') % Sur +
     
            M=[M ; rand(1,2)]; % Ajout de lignes
     
    	else % Sur -
     
            if ~isempty(M) % Pas de suppression si la matrice est vide
     
                M(end,:)=[]; % Suppression de lignes
     
            end
     
    	end
     
    	M % Juste pour controle
     
    	set(gcf,'userdata',M) % Stockage de la matrice M modifiée
     
    	% Mise à jour du texte
    	if isempty(M)
     
            str='M is an empty matrix';
     
    	else str=sprintf('M is an %dx%d',size(M));
     
    	end
     
    	set(findobj('style','text'),'string',str)
    Est-ce que cela t'aide ?
    Ingénieur indépendant en conception mécanique et prototypage :
    • conception mécanique 3D (Autodesk Fusion 360)
    • impression 3D (Ultimaker)
    • développement informatique (Python, MATLAB, C)
    • programmation de microcontrôleur (Microchip PIC, 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
    Futur Membre du Club
    Inscrit en
    février 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : février 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    J'ai essayé de mettre en oeuvre ton exemple et il m'a permis de simplifier nettement mon programme.
    Donc merci beaucoup.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/11/2012, 12h25
  2. [Débutant] ajouter une image dans picturebox a partir d'une listbox
    Par gindistimoo dans le forum VB.NET
    Réponses: 1
    Dernier message: 30/05/2012, 15h40
  3. Sélections de lignes dans un JTable à partir d'une action
    Par CSI_Bern dans le forum Composants
    Réponses: 5
    Dernier message: 28/03/2012, 15h57
  4. [TPW] Ajout d'une ligne dans un fichier texte après une position saisie
    Par far3as dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 19/12/2010, 12h27
  5. Réponses: 6
    Dernier message: 14/06/2010, 15h55

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