% Jake Bobowski % July 27, 2017 % Created using MATLAB R2014a % This tutorial will show you how to do basic matrix manipulations. This % is where MATLAB really shines. MATLAB, after all, stands for Matrix % Laboratory. clearvars % Here's how you enter, for example, a 3x3 matrix. Elements along the row % are separated by comma. The end of a row is indicated using a semicolon. m = [1, 3, 0, 4; 2, -2, 1, 2; -4, 1, -1, -7] % We can get the size of the matrix. size(m) % Size has a two-component output. Here's a trick we can use to get the % number of rows assigned to a and the number of columns assigned to b. [a b] = size(m) % We can now index m to select particular rows or columns or elements. % Here's the element in the 2nd row, 3rd column. m(2, 3) % Here's entire 2nd row. m(2, :) % Here's the entire 3rd column. m(:, 3) % I can assign a new value to a specific element. m(2, 2) = 99; m % I can also assign new values to an entire row... m(2, :) = (10:10:40); m % ... or column. m(:, 3) = (-10:-10:-30); m % m is a 3x4 matrix. Let's define a 4x3 matrix n = [1, 2, 3; 4, 5, 6; 7, 8, 9; 10, 11, 12] % Now we can multiply our 3x4 matrix and or 4x3 matrix to create a 3x3 % matrix... m*n % ...or a 4x4 matrix. n*m % Just a word of caution. You can also do element-by-element % multiplication of two of matrices by placing a dot in front of *, as % in .*, see the example below: x = [1:3; 4:6] y = [10:10:30; 40:10:60] x.*y % Let's create a square matrix so that we can take its inverse. MATLAB % will automatically create 'magic nxn matix' using magic(n). In a magic % matrix all the rows, columns, and diagonals add up to the same number. m3 = magic(3) % Here's the inverse of m4. im3 = inv(m3) % We can check that the matrix product of m3 and im3 produces the identity % matrix. m3*im3 % It's also easy to take the transpose of matrices. Of course, the % transpose of a magic matrix is still magic! Notice the dot (.) in front % of ', without the dot MATLAB would transpose the matrix and then take the % complex conjugate of each element. It doesn't matter for a matrix in % which all of the elements are real, but it would be important if you had % some complex-values elements. See below when we discuss the Hermitian % Conjugate. m.' m3.' % Someone in a qunatum mechanics course may want to take the Hertitian % conjugate of a matrix. % First, let's create a complex-valued matrix. mc = [i, 3*i, 4; 2, -2, -2*i] % The Hermitian Conjugate can be calcuated using... ctranspose(mc) % ...or simply by: mc' % Notice that, as stated above, the ' operator transposes and conjugates % the matrix.
m =
1 3 0 4
2 -2 1 2
-4 1 -1 -7
ans =
3 4
a =
3
b =
4
ans =
1
ans =
2 -2 1 2
ans =
0
1
-1
m =
1 3 0 4
2 99 1 2
-4 1 -1 -7
m =
1 3 0 4
10 20 30 40
-4 1 -1 -7
m =
1 3 -10 4
10 20 -20 40
-4 1 -30 -7
n =
1 2 3
4 5 6
7 8 9
10 11 12
ans =
-17 -19 -21
350 400 450
-280 -320 -360
ans =
9 46 -140 63
30 118 -320 174
51 190 -500 285
72 262 -680 396
x =
1 2 3
4 5 6
y =
10 20 30
40 50 60
ans =
10 40 90
160 250 360
m3 =
8 1 6
3 5 7
4 9 2
im3 =
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028
ans =
1.0000 0 -0.0000
-0.0000 1.0000 0
0.0000 0 1.0000
ans =
1 10 -4
3 20 1
-10 -20 -30
4 40 -7
ans =
8 3 4
1 5 9
6 7 2
mc =
0.0000 + 1.0000i 0.0000 + 3.0000i 4.0000 + 0.0000i
2.0000 + 0.0000i -2.0000 + 0.0000i 0.0000 - 2.0000i
ans =
0.0000 - 1.0000i 2.0000 + 0.0000i
0.0000 - 3.0000i -2.0000 + 0.0000i
4.0000 + 0.0000i 0.0000 + 2.0000i
ans =
0.0000 - 1.0000i 2.0000 + 0.0000i
0.0000 - 3.0000i -2.0000 + 0.0000i
4.0000 + 0.0000i 0.0000 + 2.0000i