%% Lesson 1 %% Objective % After this class, you should be able to: %% % % * Know why you need MATLAB % * Manuever around the MATLAB interface % * Understand arithmetic and basic functions in MATLAB % * Know how to make scalar, vector and matrix variables in MATLAB % * Know how to perform matrix operations in MATLAB % %% MATLAB overview % MATLAB (short for MATrix LABoratory) is a commonly used interactive % software amongst engineers. As the name suggests, MATLAB organizes its % data as matrices and is specially designed for matrix multiplication. In % addition, it has a plethora of plugins and functions that engineers can % use, such as machine learning, financial analysis, filter design etc. %% % In Cooper, MATLAB is widely used in electrical and computer engineering % classes (signals, comm theory, machine learning, etc.), and is more broadly % used for these purposes and others (physics simulations, controls design, % etc.) across many engineering and scientific disciplines. % %% MATLAB Environment %%% Command window % The command window is sort of the equivalent of a terminal in Linux, or % Cygwin in Windows. When you type a command into the command window, an % operation performs. You can type a MATLAB command, such as 5+10, and the % answer would be printed out. If a variable is not assigned to the % command, the result would be stored in the variable ans automatically. If % a semicolon is added at the end of the line, the result would be % suppressed. You can clear the command window by typing clc. Moreover, you % can also type command line commands in the command window, such as ls, % pwd etc. %%% Command history % When you are playing around with different functions in MATLAB, you might % want to trace back what functions you played with. At that time, you can % press the up arrow, which would show you your command history. %%% Workspace % The workspace is where all the variables are stored. Each variable is % displayed as a name value pair in the workspace. If the variable is a % scalar, then the actual value would be shown. If it is a vector or matrix % , then depending on the size of the vector / matrix, it would either be % shown as its value or simply the size of the vector / array and its type. % You can double click on the variables to investigate its actual value in % a spreadsheet. %%% Current Folder % The current folder shows you where you are located at in MATLAB. If you % execute the command pwd on the command window, it should show you the % location of the current folder. You might find a time where you need to % add a folder and link it to your current folder location. At that time, % you can right click and select "Add to Path". To change current folder, % you can execute the cd command on your command window %%% Editor % The editor is where you can write a script and execute it. All MATLAB % scripts are saved as .m files. To execute a script, press the play button % on top in EDITOR tab. When you are executing a script, you can use the % semicolon to suppress the output of each line. To display a certain % variable at an arbitrary location in your script, you can use disp() % function. %% Arithmetic and Basic functions %% Basic Operations 5+10; % Addition ans; % Prints out previous answer 25-7; % Subtraction 24*86; % Multiplication 123.456*78.90; % Multiplication 145/123; % Division 2^5; % Exponential log10(1000); % Logarithm base 10 log(exp(5)); % Natural logarithm sqrt(625); % Square root sin(pi); % sine function asin(0); % arc sine function 1e5; % e5 multiplies 1 by 10^5 1e-2; % e-2 multiplies 1 by 10^-2 %% Complex Numbers 2+1i; % equivalently, 2+i 2+1j; % equivalently, 2+j (2+2i)*(3+4j); %% Special Numbers pi; exp(2*pi*j); inf; %% Complex number operations conj(2+i); % complex conjugate real(2+i); % real part imag(2+i); % imaginary part abs(2+i); % magnitude/absolute value angle(2+i); % angle or phase %% Variables % In matlab, there are 3 (main) different kinds of variables %% % * Scalar - A scalar appears as 1-by-1 and it is a single real or complex % number % * Vector - A vector is 1-by-n or n-by-1, and appears in MATLAB as a row or % column of complex numbers % * Matrix - A matrix is m-by-n, and appears in MATLAB as, essentially, a % matrix. A matrix is a 2-D array % If you want to see what variables you've declared, either look in the % Workspace section of the MATLAB window, or type: who; whos; %% Scalar Variables a = 5; b = 10; c = a+b; z1 = 2+j; z2 = 3+4j; z = z1*z2; %% Vector Variables x = [1 2+3j 2.718 pi cos(pi)]; % row vector x = [1, 2+3j, 2.718, pi, cos(pi)]; % same thing with commas xT = transpose(x); % now you created the column vector xT = x.'; % regular tranpose xT = x'; % complex tranpose y = [1 ; 2.5 ; 3.2 ; 4*pi; cos(pi)]; % column vector xlen = length(x); % length of row/col vector ylen = length(y); % same value as length(x)! %% BE CAREFUL! % The following two vectors produces vectors of different sizes, the reason % being linspace(x1, x2, n) creates n evenly spaced points between x1 and % x2 , with the value of interval (x2-x1)/(n+1), while the colon operator % (used in the form of x1:i:x2) creates an array with [x1, x1+i, x1+2i..., % x1+mi], where m = (x2-x1)/i. Hence when creating a vector with the colon % operator or linspace, make sure you know when to use it. In conclusion, % linspace works with number of points, whereas the colon operator works % with increments. %% v1 = linspace(-5,5,10); v2 = -5:1:5; %% Matrix Variables A = [1 2 3; 4 5 6; 7 8 9]; % basic construction of matrix B = repmat(A,2,1); % you concatenated A one above the other C = [A; A]; % same as above C1 = transpose(C); % now you transposed C! C2 = C.'; % still transposed! if it is only C' then it is % conjugate transpose size(C); % Confirm that they are tranposes of each other size(C1); size(C1,1); % You get the dimension you want! eye(3); % Create identity matrix speye(30000000); % Create sparse identity matrix D = ones(50,60); % D is 50-by-60 ones E = zeros(40); % E is 40-by-40 zeros %% Matrix Operations B+C; % addition B-C; % subtraction 4*B + C/5; % multiplication and division with a constant A+ones(size(A)); % elementwise addition with a constant B*C'; % matrix multiplication B.*C; % elementwise multiplication B.^3; % elementwise exponentiation! note: do not use B^3 2*(eye(3))^3; % only possible with square matrices %% Documentation % If you don't know how to use a function, look it up using one of the % following commands. help opens a textual documentation in the % command window (just like Linux's man command), while doc will open a % new window with graphical documentation just like their website. The % MATLAB documentation website is also a great resource! help clc; doc size;