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

Interfaces Graphiques Discussion :

Problème affectation de variable à un slider GUI


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Par défaut Problème affectation de variable à un slider GUI
    Bonjour,

    Comme évoqué dans l'intitulé de cette discussion, j'ai du mal à comprendre le fonctionnement du GUI et à affecter une variable qui pourrait changer d'état en fonction de la position du slider.

    J'ai une fonction affine de base type ax+b à laquelle j'effectue une régression linéaire, il y a donc plusieurs variables (a,b,N,lambda) auxquels j'aimerais affecté respectivement un slider, voici le code que j'utilise :

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    function varargout = interface(varargin)
    % INTERFACE MATLAB code for interface.fig
    %      INTERFACE, by itself, creates a new INTERFACE or raises the existing
    %      singleton*.
    %
    %      H = INTERFACE returns the handle to a new INTERFACE or the handle to
    %      the existing singleton*.
    %
    %      INTERFACE('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in INTERFACE.M with the given input arguments.
    %
    %      INTERFACE('Property','Value',...) creates a new INTERFACE or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before interface_OpeningFcn gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to interface_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
     
    % Edit the above text to modify the response to help interface
     
    % Last Modified by GUIDE v2.5 17-Feb-2013 15:09:47
     
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @interface_OpeningFcn, ...
                       'gui_OutputFcn',  @interface_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
     
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    % End initialization code - DO NOT EDIT
     
     
    % --- Executes just before interface is made visible.
    function interface_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to interface (see VARARGIN)
     
    % hObject    handle to pushbutton2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Choose default command line output for interface
    handles.output = hObject;
     
    % Update handles structure
    guidata(hObject, handles);
     
    % UIWAIT makes interface wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
     
     
    % --- Outputs from this function are returned to the command line.
    function varargout = interface_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Get default command line output from handles structure
    varargout{1} = handles.output;
     
     
     
    % --- Executes on button press in pushbutton3.
    function pushbutton3_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton3 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    x=0:1:10;
    y=(2*x)+3;
    z=rand(1,length(x));
    z=z-mean(z);
     
    y=y+(z*9);
    U=[ones(length(x),1) x'];
    B=inv(U'*U)*U'*y';
     
    % Calcul de Rcarre
    b0=B(1,1);
    b1=B(2,1);
    yest=(b1*x)+b0;
    SSt=mean((y-mean(y)).^2);
    SSe=mean((yest-mean(y)).^2);
    Rcarre=SSe/SSt;
     
    plot(x,y,'.')
    hold on
    plot(x,yest,'k')
    Comment affecter ces 4 variables aux 4 sliders respectifs !?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Je ne vois pas ces variables a,b,N et lambda dans ton code, mais pour régler la position d'un slider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.tonSlider, 'Value', valeur)

  3. #3
    Membre émérite
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    Janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Doctorant automatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 446
    Par défaut
    Salut,

    Personnellement, je te conseille de procéder par étapes... tapes ceci dans le command window :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >> A = uicontrol('style', 'slider')
    Cette ligne fait plein de choses :
    1) elle ouvre une figure
    2) elle crée un slider et le place dans la fenêtre à des positions prédéfinies
    3) elle crée une variable A qui contiendra le "handle" de ton slider : c'est en quelque sorte le pointeur de ton slider si tu as déjà fait de l'orienté objet. Si tu n'en as pas fait, retiens que c'est une variable qui te permet d'accéder aux propriétés/fonctionnalités de ton slider.

    Le slider étant un objet, tu peux donc accéder à toutes les méthodes/propriétés de ton slider A. Pour les connaître, tu as deux fonctions à utiliser :

    get pour récupérer des informations de ton slider
    set pour configurer ton slider
    Teste les. Cela te renvoie toute une série de propriétés. La propriété qui te permet de connaître/changer (get/set) la valeur du slider s'appelle "value".

    Ainsi, tu récupères la valeur de ton slider avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >> valeur = get(A, 'Value')
    Et tu la changes si besoin avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >> ma_nouvelle_valeur = 0.5;
    >> set(A, 'Value', ma_nouvelle_valeur)
    Une fois que tu as compris ça, tu as compris le principal je pense.

    Certains complèteront certainement en te parlant des handles (qui ne me plaisent pas, mais ça c'est une histoire de goût, c'est personnel).

    Cordialement,

Discussions similaires

  1. problème d'affectation de variable
    Par altadeos dans le forum Langage
    Réponses: 2
    Dernier message: 06/07/2007, 16h31
  2. Problème d'affectation de variables
    Par jamescook dans le forum C++Builder
    Réponses: 15
    Dernier message: 21/06/2007, 13h08
  3. [MySQL] Problème d'affectation de variable
    Par Lydie12 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 12/06/2007, 11h50
  4. Réponses: 4
    Dernier message: 29/08/2006, 17h37
  5. Problème d'affectation de variable
    Par bob33 dans le forum C
    Réponses: 3
    Dernier message: 04/11/2005, 18h01

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