Je suis en train de réaliser une GUI avec matlab et j'ai un petit soucis.
Les deux sliders permettent de choisir l'altitude et la vitesse d'un avion.

En appuyant sur le bouton Calculate, on pourra obtenir les différents résultats présentés à droite.




Mon problème est quand je change la valeur de l'altitude sur le slider et que j'essaye de calculer la temperature, ca ne marche qu'une fois! J'obtiens une première valeur et après si je rechange l'altitude, et clique sur calculer, la valeur de la temperature ne change pas.

Comment peut-on faire pour avoir une update de l'altitude dans le calcul?

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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
function varargout = cadc(varargin)
% CADC M-file for cadc.fig
%      CADC, by itself, creates a new CADC or raises the existing
%      singleton*.
%
%      H = CADC returns the handle to a new CADC or the handle to
%      the existing singleton*.
%
%      CADC('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in CADC.M with the given input arguments.
%
%      CADC('Property','Value',...) creates a new CADC or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before cadc_OpeningFunction gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to cadc_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 cadc
 
% Last Modified by GUIDE v2.5 01-Mar-2007 15:40:12
 
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @cadc_OpeningFcn, ...
                   'gui_OutputFcn',  @cadc_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 cadc is made visible.
function cadc_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 cadc (see VARARGIN)
 
% Choose default command line output for cadc
handles.output = hObject;
 
% Update handles structure
guidata(hObject, handles);
 
% UIWAIT makes cadc wait for user response (see UIRESUME)
% uiwait(handles.figure1);
 
 
% --- Outputs from this function are returned to the command line.
function varargout = cadc_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;
 
 
%-----------------------------------------------------------
% Callback for Altitude Slider
%-----------------------------------------------------------
% --- Executes on slider movement.
function AltSlider_Callback(hObject, eventdata, handles)
% hObject    handle to AltSlider (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider
 
NewVal = get(hObject,'Value');
set(handles.AltValue,'String',NewVal);
 
%-----------------------------------------------------------
% Callback for Altitude Value
%-----------------------------------------------------------
function AltValue_Callback(hObject, eventdata, handles)
% hObject    handle to AltValue (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
% Hints: get(hObject,'String') returns contents of AltValue as text
%        str2double(get(hObject,'String')) returns contents of AltValue as a double
 
NewStrVal = get(hObject,'String');
NewVal = str2num(NewStrVal);
 
%------------------------------------------------------------
% Callback for speed slider
%------------------------------------------------------------
% --- Executes on slider movement.
function SpeedSlider_Callback(hObject, eventdata, handles)
% hObject    handle to SpeedSlider (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider
 
NewVal = get(hObject,'Value');
set(handles.SpeedValue,'String',NewVal);
 
%------------------------------------------------------------
% Callback for Speed Value
%------------------------------------------------------------
function SpeedValue_Callback(hObject, eventdata, handles)
% hObject    handle to SpeedValue (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
% Hints: get(hObject,'String') returns contents of SpeedValue as text
%        str2double(get(hObject,'String')) returns contents of SpeedValue as a double
 
NewStrVal = get(hObject,'String');
NewVal = str2num(NewStrVal);
 
%------------------------------------------------------------
% Callback to calculate all the parameters
%------------------------------------------------------------
% --- Executes on button press in calculate.
function calculate_Callback(hObject, eventdata, handles)
% hObject    handle to calculate (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
 
To = 288.15; % Temp at seal level in Kelvin
L = 0.0065; % Temperature Lapse rate K/m
Pso = 1013.25; %Pressure at sealevel in mbar
g = 9.80665; % Gravity m/s²
R = 287; % constant
a = g/(L*R);
Pst = 226.258; % Pressure at 11 km end of troposphere
Tst = 216.7; % Temperature at 11 km
Ht = 11000; % Height of the end of troposphere
rho0 = 1.225; % Sea level density in kg/m^3
rhos = 0.363817; %11km density
gam = 1.4;
 
temp = To - (L*handles.AltValue);
set(handles.temp, 'String', temp);
 
 
%------------------------------------------------------------
% Callback on User Note
%------------------------------------------------------------
% --- Executes on button press in note.
function note_Callback(hObject, eventdata, handles)
% hObject    handle to note (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
Merci d'avance pour votre aide.

Benji