%%%%%% GETTING STARTED
% The first thing you should do is place this file in a folder that you
% will use to save your work.
% Now run Matlab and use the "Current Directory" pull-down menu to point
% Matlab to the folder where you have saved this file.
% You will need to work with two pieces of Matlab, the Editor and the
% Command Window.
% The Command Window should open automatically when you run Matlab.
% To open the Editor, type "edit" and hit return at the command prompt.
% You use the Editor to create, open, save, etc, Matlab program files.
% These files have the extension ".m"
% If you have a program file called "my_program.m", you run it by typing
% "my_program" and then hitting enter in the Command Window. Of course,
% Matlab has to be pointed to the right folder on your computer (ie, the
% folder where "my_program.m" is saved).
% To see a list of all the files in the directory, type "dir" at the
% Command Window.
% To see a list of all the Matlab objects in the current directory, type
% "who" or "whos". "who" gives a list of all the named variables in the
% current directory. "whos" gives a list with details, eg, the size of
% various matrices, how much memory they take to store, and what kind of
% object they are (eg, a symbol).
% In order for there to be any Matlab objects, we need to create some.
%%%%% MATRICES AND VECTORS
% We can create a 2-by-2 matrix in the following way
A = [1 2;3 4]
% When you run this program, you will see the matrix A appear in the
% command window. Bigger matrices can be made in an analogous way.
% The semi-colon starts a new row. Here is another matrix
B = [5 6;7 8];
% Putting a semi-colon at the end of a line stops Matlab from displaying
% the answer in the command window.
% Adding and subtracting are easy
C = A + B
D = A - B
% Of course, matrices must be conformable or Matlab will give an error.
% A prime (') indicates transposition
Ctranspose = C'
% This also turns column vectors into row vectors
column = [1;2;3;4]
row = column'
% Multiplying is also easy
E = A*B;
% Whenever you want to see something in the command window, delete the
% semi-colon at the end of the line, save this file again, and run it.
% Alternatively, you could just type "E" (or "A" or whatever the object
% you're interested in is) at the command line one the
% program is finished and Matlab will call up the object from its memory.
% Taking a matrix inverse works so long as the matrix is not singular.
% Compare
invC = inv(C)
% with
invD = inv(D)
% (this last command gives an error message since D is singular). To see
% check that D is singular, note
detD = det(D)
% is zero
% Matrices can also be created with a number of specialized commands. For
% example:
O = ones(3,3);
% creates a 3-by-3 matrix with all elements equal to one,
Z = zeros(3,3);
% creates a 3-by-3 matrix of zeros, and
I = eye(3,3);
% creates a 3-by-3 identity matrix
% We can also stack matrices together. Say,
bigmatrix = [O Z;Z O];
% We need to make sure that all our row and column dimensions add up. It is
% sometimes useful to check things like
[m,n] = size(bigmatrix);
% which gives the row (=m) and column (=n) dimensions.
%%%%%% OPERATIONS
% We can do commands like max,min,sum and apply them to matrices. These are
% done column by column.
maxA = max(A);
minA = min(A);
sumA = sum(A);
% Some other helpful operations are cumulative sums, eg
time = cumsum(ones(10,1));
% creates a vector that runs from 1 to 10.
%%%%% LOOPS
% The basic "for" loop has the structure
N = 10; %% some number
cs = zeros(N,1); %% a vector to store some answers
for i = 1:N
cs(i) = sum(ones(i,1));
end
% This produces a vector that is the same as cumsum(ones(10,1))
% The basic "while" loop has the structure
tolerance = 10^-6; %% an arbitrary tolerance level
error = 100; %% some number bigger than tolerance, to get us going
n = 1; %% an initial condition
xs = []; %% an empty matrix -- we will fill this in as we go
while error > tolerance
xs_new = 0.5^n; %% calculate some value, say 0.5^n -- a convergent series
xs = [xs;xs_new]; %% keep adding new elements to xs
error = abs(xs_new-0); %% check to see if we have convergence
n = n+1; %% if not, keep iterating!
end
%%%%% PLOTS
% We can see what this sequence looks like by
plot(xs)
title('0.5^n')
xlabel('n')