Summary: Introduction to MATLAB and script files. This development of these labs was supported by the National Science Foundation under Grant No. DUE-0511635. Any opinions, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.
The goal of this lab is to provide exercises that will help you get started learning MATLAB. You will learn about the help function, vectors, complex numbers, simple math operations, and 2-D plots. You may find it useful to try some of the built-in demos in Matlab. Type demo to see the choices. In particular, look at the demo on "Basic matrix operations" (under "Mathematics") and on "2-D" plots (under "Graphics"). We will also look at script files in MATLAB, which we will refer to as M-files and have the file extension *.m.
Start MATLAB by clicking on it in the start menu. Once MATLAB is running you will see a screen similar to Figure 1. The command window, (A), is where you can enter commands. The current working directory, (B), displays the directory that MATLAB will look first for any commands. For example, if you made a new MATLAB function called myfunc.m, then this will need to be placed in the current working directory. You can change the working directory by typing it in the box, clicking the "..." button to browse to a folder, or typing cd [directory name] (i.e. cd 'H:\ee235\lab0\'), which is similar to the DOS/Linux cd command).
Current Directory. A history of your commands is shown in (D). If you find that you do not need some of these windows open you can close them by clicking on the small x in that section of the window.
| The MATLAB GUI |
|---|
![]() |
matlab at the command prompt will run MATLAB in X-Windows (warning, MATLAB in X-Windows can be slow when connecting off campus). To run MATLAB without X-Windows type matlab -nodisplay. You can also run MATLAB using the current terminal for commands and use X-Windows for everything else (like figures) by typing matlab -nodesktop.
MATLAB works with matrices and therefore treats all variables as a matrix. To enter the matrix
x = [3 1 5; 6 4 1]. We can represent an array with a vector, which is a special case of a matrix. A vector can be entered in by typing y = [1 2 3]. Now try entering z = [1 2 3]'. Is the output what you expect?
help gives you a list of all help topics. Typing help <topicname> gives help on a specific MATLAB function. For example, use help plot to learn about the plot command.
whos lists all variables
clear clears all variables
x * y'
x' * y
x .* y
Be sure you understand the differences between each of these and you know what the ', *, and .* operators do.
The Matlab command plot allows you to graphically display vector data (in our case here, the two signals). For example, if you had the variables t for time, and y for the signal, typing the command plot(t, y); will display a plot of t vs. y. See help plot for more information.
Annotating your plots is very IMPORTANT! Here are a few annotation commands.
title('Here is a title'); - Adds the text "Here is a title" to the top of the plot.
xlabel('Control Voltage (mV)'); - Adds text to the X-axis.
ylabel('Current (mA)'); - Adds text to the Y-axis.
grid on; - Adds a grid to the plot.
In order to display multiple plots in one window you must use the subplot command. This command takes three arguments, subplot(m, n, p). The first two breaks the window into a m by n matrix of smaller plot windows. The third argument, p, selects which plot is active.
For example, if we have three signals x, y, and z, that we want to plot against time, t, then we can use the subplot command to produce a single window with three plots stacked on top of each other.
subplot(3,1,1);
plot(t,x);
subplot(3,1,2);
plot(t,y);
subplot(3,1,3);
plot(t,z);
See help subplot and help plot for much more information.
t = -10:0.1:10;
xo = t .* exp(-abs(t));
plot(t, xo); grid;
The first command defines an array with time values having an 0.1 increment. The ";"
is used to suppress printout of the arrays (which are large), and the "grid" command
makes the plot easier to read. Now create the signals:
subplot(3,1,1);
plot(t,xo);
subplot(3,1,2);
plot(t,xe);
subplot(3,1,3);
plot(t,x);
Note that
i as an imaginary number. Try entering sqrt(-1) into MATLAB, does the result make sense?
i instead of j by default. Electrical Engineers prefer using j however, and MATLAB will recognize that as well. Try entering i+j, does this make sense.
i and j as variables to prevent confusion.
abs(), angle(), real(), imag(), respectively). Is the phase in radians
or degrees?
load handel;
plot(linspace(0,9,73113),y);
sound(y);
clear command in MATLAB to clear all of the varibles
Scripts are m-files files that contain a sequence of commands that are executed exactly as if they were manually typed into the MATLAB console. Script files are useful for writing things in MATLAB that you want to save and run later. You can enter all the commands into a script file that you can run at a later time, and have the ability to go back and edit it later.
You need to use a text editor to create script files, e.g. Notepad on the PC's (pico, emacs, or vi on Linux machines). MATLAB also has an internal editor that you can start by clicking on a .m file within MATLAB's file browser. All are easy to learn and will produce text files that MATLAB can read.
Click here to download the dampedCosine.m script and be sure to save it with that name to follow the instructions here exactly. It is very important that script filenames end in .m. Be sure that MATLAB's working directory is set to the location of where you saved the script file. Type dampedCosine at the MATLAB prompt. Look at the m-file in a text editor and verify that you get the plot predicted in the comment field of the script.
% character marks the rest of the line as a comment.
Now we are going to edit the dampedCosine.m file to create our own script file. At the top of the file, you will see the following commands
diary 'your_name_Lab1.txt'
disp('NAME: your name')
disp('SECTION:your section')
yourName_dampedCosine.m
subplot and plot. Save this plot as yourName_dampedCosine.fig.
Download and run compexp.m, which includes a 3-D plot of a complex exponential,