Anda di halaman 1dari 24

Introduction to MATLAB

Violeta Ivanova, Ph.D. Educational Technology Consultant MIT Academic Computing violeta@mit.edu http://web.mit.edu/violeta/www/IAP2006

Topics
9 9 9 9

MATLAB Interface and Basics Linear Algebra and Calculus Graphics Programming MATLAB Practice Math On the Web (optional)
{

MATLAB Web Server

IAP 2006 Introduction to MATLAB: Practice

Class Materials

On laptops download from:


http://web.mit.edu/acmath/matlab/IntroMATLAB

On Athena copy from locker acmath


athena% add acmath athena% cp /mit/acmath/matlab/IntroMATLAB/Practice.tar .

IAP 2006 Introduction to MATLAB: Practice

Help in MATLAB

Command line help


>> help command e.g. help guide >> lookfor keyword e.g. lookfor GUI

Desktop menu
{

Help->Help MATLAB

IAP 2006 Introduction to MATLAB: Practice

MATLAB Help Browser

MATLAB
+ Programming
+ M-File Programming + Programming Tips

+ Creating Graphical User Interfaces


+ Getting Started with GUIDE + Creating a GUI + Laying Out GUIs and Setting Properties + Programming GUIs + GUI Applications + Working with Callbacks

+ Functions - Categorical List


IAP 2006 Introduction to MATLAB: Practice

MATLAB GUI Programming


Graphical User Interface Widgets and Callbacks GUIDE, FIG-Files and M-Files

Graphical User Interface

Widgets
{ { { { { { {

Text fields: static text, edit text Buttons: toggle, push, and radio buttons Popup menus Check boxes Sliders Axes Panels

Callbacks
Functions called by widgets.
IAP 2006 Introduction to MATLAB: Practice

MATLAB Programs with GUI

FIG-File(s)
{ {

Created with GUIDE GUI graphical layout (widgets) Created in Editor/Debugger The code behind a GUI Function M-file to open the GUI Function M-files with callbacks Other function M-files

M-Files
{ { { { {

IAP 2006 Introduction to MATLAB: Practice

Built-In Functions

GUIDE Editor
>> guide >> guide filename

Code behind a GUI


openfig figure findobj set get

Strings and numbers


str2num num2str
IAP 2006 Introduction to MATLAB: Practice

GUIDE Editor: Layout Design


>> guide GUIfilename

IAP 2006 Introduction to MATLAB: Practice

GUIDE: Property Inspector

Double click on a widget to open the Property Inspector Set widget attributes
{ { { {

Tag String Fonts (optional) Colors (optional)

Do NOT set Callback function here


IAP 2006 Introduction to MATLAB: Practice

GUI FIG-Files and M-Files

In GUIDE, save the graphical layout to a FIG file


{

Note: you may ignore the generated M-file. One M-File for every GUI Window One M-File for every Callback function that is executed when the user interacts with widgets Note: different widgets may call the same callback function.

In Editor/Debugger, create M-Files


{ { {

IAP 2006 Introduction to MATLAB: Practice

GUI M-Files

Functions:
{ { { {

To open the GUI: openfig, figure To get access to widgets: findobj To set attributes to widgets: set To get attributes of widgets: get Widgets work with STRINGS, not numbers Stringand Value Tag Callback
IAP 2006 Introduction to MATLAB: Practice

Widget attributes:
{ { { {

GUI M-Files: Example


function rocketprogram % --------------------fig1 = openfig(rocketGUI.fig, reuse) figure(fig1) % --------------------R_units_txt = findobj( fig1, Tag, R_units_txt ); units_popup = findobj( fig1, 'Tag', units_popup ); % --------------------set( R_units_txt, String, km ); set( units_popup, String, {Metric, English} ); set( units_popup, Value, 1); set( units_popup, Callback, computevelocity);
IAP 2006 Introduction to MATLAB: Practice

GUI M-Files: Example (continued)


function computevelocity % ---------------------units_popup = findobj( fig1, 'Tag', units_popup ); H_input_txt = findobj( fig1, 'Tag', H_input_txt ); % ----------------------units = get( units_popup, Value); strH = get( H_input_text, String); numH = str2num( strH ); % ----------------------if units == 1 V = orbitalvelocity( R, g0, numH, m)

IAP 2006 Introduction to MATLAB: Practice

Cleaning Up a Program

MATLAB Editors debugging mode


{ { {

Click next to line numbers to set stops Run program in Command Window The program runs in Debug Mode K>> and stops at the set stops Click Step icon to proceed line by line Hold the cursor over a variable to see its current value Click Run icon to complete programs run or Exit Debug Mode icon to stop debugging

{ {

IAP 2006 Introduction to MATLAB: Practice

MATLAB Demos and Practice


MIT MATLAB Programs MATLAB File Exchange Questions & Answers

MIT MATLAB Demos

1.010 Uncertainty in Engineering


{ {

Three programs for Monte Carlo simulations. CC Andreas Langousis and Daniele Veneziano Several demos with graphical user interface 2004 Xiaowei He and Markus Zahn

6.013 Electromagnetics
{ {

Download from:
http://web.mit.edu/acmath/matlab/IntroMATLAB 1_010_statistics (.tar, .zip) 6_013_electromagnetics (.tar, .zip)
IAP 2006 Introduction to MATLAB: Practice

MATLAB File Exchange


http://www.mathworks.com/support User Community File Exchange or go directly to http://www.mathworks.com/matlabcentral/fileexchange/ { Various File Exchange Categories { Download examples from: http://web.mit.edu/acmath/matlab/IntroMATLAB MATLAB_File_Exchange_Downloads (.tar, .zip) units.m, sun_position.m, sudoku.m
IAP 2006 Introduction to MATLAB: Practice

Additional Training (Free)


Online MATLAB tutorial


https://web.mit.edu/tm/matlab_mastery_I/setup/Start.htm

IAP 2006 advanced MATLAB seminars


{

Two sessions by Mathworks instructors


Using MATLAB for Test and Measurement Applications Advanced Programming Tips and Techniques for MATLAB 7 Including the MATLAB Web Server

Math On the Web seminar

{ {

Sponsored by Information Services & Technology http://web.mit.edu/violeta/www/IAP2006


IAP 2006 Introduction to MATLAB: Practice

Additional Training (For Fee)

From The Mathworks Inc.


{

Ongoing off campus


http//www.mathworks.com/services/training 50% discount for MIT community Call The Mathworks directly, or Call MIT Academic Computing to organize training sessions with Mathworks instructors. violeta@mit.edu

By request on MIT campus


IAP 2006 Introduction to MATLAB: Practice

Educational Technology Help

Free help for educational technology needs on math tools at MIT


{ {

If you teach or TA an undergraduate course that needs teaching materials in MATLAB, or If students in your department are required to know MATLAB in order to do their theses research

Contact the Educational Technology Consultants at MIT Academic Computing


{ {

et-consult@mit.edu or directly: violeta@mit.edu

IAP 2006 Introduction to MATLAB: Practice

IT Resources at MIT

MIT Information Services and Technology


http://web.mit.edu/ist

Educational Technology services at MIT (Academic Computing)


http://web.mit.edu/ist/topics/educomp

Ed Tech Times (online journal)


http://edtech.mit.edu/times

Teaching with Technology


http://web.mit.edu/teachtech

IAP 2006 Introduction to MATLAB: Practice

MATLAB Practice Exercises

Exercise One: rocketGUI.fig and rocketprogram.m


{ { {

Graphical User Interface:creating widgets with the GUIDE Editor Callbacks: writing code behind a GUI Cleaning up code with the Editor/Debugger

Demos
{ {

MIT MATLAB programs MATLAB File Exchange

Questions & Answers

IAP 2006 Introduction to MATLAB: Practice