GUIDE Examplepinit/MatlabCourse_2018B... · GUIDE : Edit Text (5) function Amp_Edit1_Callback...

Post on 26-Jun-2020

1 views 0 download

Transcript of GUIDE Examplepinit/MatlabCourse_2018B... · GUIDE : Edit Text (5) function Amp_Edit1_Callback...

GUIDE Example

Pini Tandeitnik

1

ר סמדר שץ"ד: מרצה •• Email : Smadar.Shatz@biu.ac.il • Site :

https://faculty.biu.ac.il/~shatz/MatlabEng/2016/index.html

פיני טנדייטניק: מתרגל •• Email : pinit@macs.biu.ac.il • Site : http://www.eng.biu.ac.il/~pinit/MatlabCourse_2016B/ • Cellular: 050-7929-785

יוסף בקר: מתרגל •• Email: Alanbekker@gmail.com

2

בחירת פרויקטון

שבועיים לפני : (כולל השבוע של /בחירת נושא עד• )סוף הסמסטר

התירגול אחרון עדהגשת מפרט • 1/9, 1/8: תאריכי הגשה • )1/11עד ה (איטרציות 2-3: אופן ההגשה •שני . הציון הוא אישי. ניתן לעשות פרויקטון בזוגות•

. בני הזוג צריכים להפגין ידע בכל פרטי הפרויקט

3

GUI properties

Display 3 Signals with default parameters:

1. No Signal 2. A*sin(2*pi*f*t) 3. A*exp(-t/TAU)

Changing the slider or the Edit Text Box will recalculate and re-plot the function

4

User GUI (1)

5

User GUI (2)

6

User GUI (3)

7

User GUI (4)

8

User GUI (5)

9

User GUI (6)

10

User GUI (7)

11

User GUI (8)

12

GUIDE Interface

13

GUIDE Interface Commands

14

GUI Handles handles = figure1: 205.0038 FigureToolBar: 30.0040 Amp_StaticText3: 29.0040 AmpMax_StaticText2: 28.0040 AmpMin_StaticText1: 27.0040 Amp_Edit1: 26.0040 Amp_Slider1: 25.0040 SignalSelection_PopUpMenu1: 24.0043 PLOT_PushButton1: 212.0038 Display_Axes1: 206.0038 output: 205.0038 Param: [1x1 struct] fs: 10000 t: [1x1001 double] Sig2: [1x1 struct] Sig3: [1x1 struct] PopUpMenueIndex: 2 DataLine: 48.0040 MyActions: {1x3 cell}

15

GUIDE : Inspect figure

Use property Inspector without selection of any object

16

GUIDE : Inspect Axes (1)

17

GUIDE : Inspect Axes (2)

Use property Inspector After AXES object selection

18

GUIDE : Inspect PopUpMenue (1)

19

GUIDE : Inspect PopUpMenue (2)

20

GUIDE : Inspect PopUpMenue (3)

Important properties: • String • Tag

21

GUIDE : Inspect PopUpMenue (4)

22

GUIDE : Inspect PopUpMenue (5)

23

GUIDE : Inspect PopUpMenue (6)

24

GUIDE : Inspect PopUpMenue (7)

25

GUIDE : Inspect PopUpMenue (8)

26

GUIDE : Inspect PopUpMenue (9) User Define Functions

27

GUIDE : Inspect PopUpMenue (10)

In PrimerGUIDE_OpeningFcn All activated user functions have the same API (same input parameters). An Array of function handlers is used. handles.MyActions = …. {@No_WaveForm @Sin_WaveForm @Exp_WaveForm}; The Activated function depends on the value returned from The PopUpMenue (the value of handles.PopUpMenueIndex) evokes PLOT_PushButton1_Callback handles.MyActions{handles.PopUpMenueIndex}(handles,ParamValue);

28

GUIDE : User Defined Parameters (1)

29

Edit Text Slider

Static Text

GUIDE : Inspect Slider (1)

30

GUIDE : Inspect Slider (2)

Important properties: • String • Tag

31

GUIDE : Inspect Slider (3)

32

GUIDE : Inspect Slider (4)

33

GUIDE : Edit Text (1)

34

GUIDE : Edit Text (2)

35

GUIDE : Edit Text (3)

36

GUIDE : Edit Text (4)

37

GUIDE : Edit Text (5) function Amp_Edit1_Callback(hObject, eventdata, handles) % hObject handle to Amp_Edit1 (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 Amp_Edit1 as text % str2double(get(hObject,'String')) returns contents of Amp_Edit1 as a double editSliderValue = get(handles.Amp_Edit1,'String'); %convert from string to number if possible, otherwise returns empty numEditSliderValue = str2num(editSliderValue); sliderValueMin=get(handles.Amp_Slider1,'Min'); sliderValueMax=get(handles.Amp_Slider1,'Max'); if (isempty(numEditSliderValue) || sliderValueMin > numEditSliderValue || numEditSliderValue > sliderValueMax) sliderValue=get(handles.Amp_Slider1,'Value'); set(handles.Amp_Slider1,'Value',sliderValue); set(handles.Amp_Edit1,'String',num2str(sliderValue)); h1=msgbox(['Amplitude ' num2str(editSliderValue) ' is out of range'],'message','modal'); % warrning else set(handles.Amp_Slider1,'Value',numEditSliderValue); PLOT_PushButton1_Callback(hObject, eventdata, handles); end

38

GUIDE : Push Button (1)

39

GUIDE : Push Button (2)

40

GUIDE : Push Button (3)

41

GUIDE : Static Text (1)

42

GUIDE : Static Text (2)

43

GUIDE : Static Text Initialization function [y]=SliderPramInitGUI(handles,WaveFormIndex) set(handles.Amp_Edit1,'String',num2str(handles.Param.Value(WaveFormIndex))) set(handles.AmpMin_StaticText1,'Value',handles.Param.MinValue(WaveFormIndex)) set(handles.AmpMin_StaticText1,'String',num2str(handles.Param.MinValue(WaveFormIndex))) set(handles.AmpMax_StaticText2,'Value',handles.Param.MaxValue(WaveFormIndex)) set(handles.AmpMax_StaticText2,'String',num2str(handles.Param.MaxValue(WaveFormIndex))) set(handles.Amp_StaticText3,'String',handles.Param.Name(WaveFormIndex)) set(handles.Amp_Slider1,'Max',handles.Param.MaxValue(WaveFormIndex)) set(handles.Amp_Slider1,'Min',handles.Param.MinValue(WaveFormIndex)) set(handles.Amp_Slider1,'Value',handles.Param.Value(WaveFormIndex)); if WaveFormIndex==1 set(handles.Amp_Slider1,'Enable','off') set(handles.Amp_Edit1,'Enable','off') else set(handles.Amp_Slider1,'Enable','on') set(handles.Amp_Edit1,'Enable','on') end 44

function PrimerGUIDE_OpeningFcn (1)

function PrimerGUIDE_OpeningFcn(hObject, eventdata, handles, varargin) % Choose default command line output for PrimerGUIDE handles.output = hObject; % Manipulate slider Enviorment %Params: %====== % 1 - No function % 2 - Sine frequency % 3 - Exp TAU % [NU Freq TAU ] handles.Param.Value=[1 100 .02]; handles.Param.MinValue=[0 50 .002]; handles.Param.MaxValue=[2 500 .05]; handles.Param.Name={'Param.', 'Freq.' , 'TAU'};

45

function PrimerGUIDE_OpeningFcn (2)

set(hObject,'toolbar','figure'); % Add the toolbar handles.fs=10000; handles.t=(0:1:1000)/handles.fs; handles.Sig2.Amp=1; handles.Sig2.Freq=handles.Param.Value(2); % handles.Sig2.Data= @ PLOT_PushButton1_Callback handles.Sig3.Amp=1; handles.Sig3.TAU=handles.Param.Value(3); % handles.Sig3.Data= @ PLOT_PushButton1_Callback handles.PopUpMenueIndex=1; % no wave form was selrcted

46

function PrimerGUIDE_OpeningFcn (3)

% first time Initialization of the line object, % YData propery is used in the next plots cla(handles.Display_Axes1) handles.DataLine=line(handles.t,zeros(size(handles.t))); % First time plot ! xlabel('[sec]') ylabel('[Amp]') SliderPramInitGUI(handles,1); set(handles.PLOT_PushButton1,'Enable','off') set(handles.Amp_Slider1,'Enable','off') handles.MyActions = {@No_WaveForm @Sin_WaveForm @Exp_WaveForm}; % Update handles structure guidata(hObject, handles);

47

Very Important !!!!!!!!!!!!!!!!!!!!!!

תרגיל

בעל התכונות GUIDEבעזרת ה GUIכיתבו •

אשר הוצגו במצגת בתירגול

48

הגשות

בשבוע הבא יש להגיש הצעת פרויקט כתובה•

מניסיון שנים עברו תהליך אישור ההצעה לוקח • .... שתיים שלוש איטרציות

אין להתחיל בכתיבת הפרויקט המסכם ללא קבלת •

אישור בכתב על גבי הדוח המכין

49

בהצלחה בפרויקט

הסיום בקורס

50