The functions we wrote in class are provided below. Each lists the filename, a description of what we're illustrating, and then the file contents. You can cut & paste as needed. square.m : a super-simple example of a function that takes one argument and returns one value function s = square(x); % declare a function named square % square takes an argument x and returns its square, s=x*x s = x*x; end pow.m : an example of a function that takes two arguments function y = pow(x,n) % this function takes two arguments % pow(x,n): return x to the n y = x^n; % semicolon to suppress printing end square_cube.m : an example of a function with two return values function [s,c] = square_cube(x); % example of multiple return values % return the square and the cube of x s = x*x; c = s*x; end isOdd.m : an example of an if-else statement function r = isOdd(n) % return 1 if n is odd, 0 if n is even if 2*floor(n/2) ~= n % this will test if n is not even r = 0; else r = 1; end isTwo.m : a simpler example of an if-else statement function r = isTwo(n); % return 1 (true) if n is two, % 0 (false) if n is not two % simple example of an if statment if n == 2 r = 1; % true, n is two else r = 0; % false, n is not two end end printtoten.m : a simple example of a for-loop, with no arguments and no return value function printtoten(); % print the numbers from 1 to 10 % example for loop for n=1:10 n end end sumtoten.m : a more meaningful example of a for-loop function s = sumtoten(); % return the sum of 1 through 10 s = 0; % set s to zero for n=1:10 s = s+n; % add each number from 1 to 10 to s end end matvecmult.m : a home-grown matrix-vector multiply function function y = matvecmult(A,x); % return y = A*x; [m,n] = size(A); % get size of matrix y = zeros(m,1); % Compute y(i) = sum A_ij x_j % "nested loops" for i=1:m for j=1:n y(i) = y(i) + A(i,j)*x(j); end end end