Download presentation
Presentation is loading. Please wait.
Published byJob Edwards Modified over 9 years ago
1
Lecture 7 Sept 22 Goals: Chapters 5 and 6
2
Scripts Sequence of instructions that we may want to run can be stored in a file (known as script). by typing the name of the file, Matlab executes the sequence of operations. files can be created by any plain text editor (such as notepad) or the editor that comes with Matlab.
3
Files, path, working directory etc. We can save the values of the current variables using the save command. >> save(‘temp’, ‘a’, ‘b’, ‘c’); Will save variables a, b, c in a file named temp.mat default directory is named work. But this can be changed by specifying other paths. Example:
4
Files, path, working directory etc. pwd – gives the path to the working directory. cd – change directory dir – list all the files in the current directory load a file using the load command.
5
Importing and exporting data We can read from an Excel spreadsheet using the command: >> tab = xlsread(‘my_file.xls’); Now tab becomes a matrix. Example:
6
Reading a plain text ASCII file
7
Chapter 5 - Exercises Exercise 5.2. Write a script swap.m that swaps the values of variables a and b. For example: >> a = 1; >> b = 2; >> swap >> a a = 2 >> b b = 1
8
Exercise 5.3 Store a text file in the working directory. Write a script to create a cell array containing all the individual words of the text file. The cell array should not have any duplicate words. (i.e., keep only one copy of each word.)
9
Exercise 5.3 Store a text file in the working directory. Write a script to create a cell array containing all the individual words of the text file. The cell array should not have any duplicate words. (i.e., keep only one copy of each word.) x = unique(textread(‘my_file.m', '%s'));
10
Functions functions encapsulate computations that are repeatedly performed. input and output parameters. Example 1: Write a function to compute the hypotenuse of a right triangle given the two smaller sides a a and b.
11
function c = hyp(a, b) c = sqrt(a*a + b * b); This file should be stored in the current directory that is visible to Matlab. Then we can perform: >> hyp(3, 4) ans = 5
12
Example 2: Write a function swap that takes as input an array of integers and returns an array by swapping the max key and the key in index 1. For example: >> B = [1, 2, 8, 4, 7, 5, 6]; >> C = swap(B); >> C Ans = [8, 2, 1, 4, 7, 5, 6]; Etc.
13
Function swap function B = swap (A) [temp, id] = max(A); A(1) = A(1)+ A(id); A(id)= A(1) - A(id); A(1) = A(1) - A(id); B = A;
14
Local vs. global variables
15
Example 3: Write a function GCD that outputs the greatest common divisor of two positive integers n and m. Recall Euclid’s algorithm: GCD of 52, 9 compute mod(52, 9) = 7 new pair: 9, 7 mod(9, 7) = 2 7, 2 mod(7, 2) = 1 2, 1 mod(2, 1) = 0 1, 0 When we reach pair (x, 0), x is the GCD.
16
GCD function We need to know how to create a loop. There are two ways to do this: for loop while loop For this problem, we will use the while loop.
17
GCD function function m = gcd(a, b) while ~(b==0) rem = mod(a, b); a = b; b = rem; end; m = a;
18
Exercise: Write a function that takes as input a positive integer n and returns the first prime number greater than n. Recall the function isprime in Matlab that returns true (false) if the input is a prime (is not a prime).
19
Exercise: Write a function that takes as input a positive integer n and returns the first prime number greater than n. Recall the function isprime in Matlab that returns true (false) if the input is a prime (is not a prime). function n = nextPrime(m) n = m + 1 while 1 if isprime(n) break; else n = n + 1; end;
20
Exercise 6.1: Write a function, powersum, that computes for any specified values of z and n.
21
Solution:
22
Exercise 6.2 (d) Write a function eliminate that takes as input a character string and returns a string of the same length in which e and E have been replaced by *. Hint: Use find and the index operator. Example: >> eliminate(‘TherE’) ans = Th*r*
23
Exercise 6.2 (d) Write a function eliminate that takes as input a character string and returns a string of the same length in which e and E have been replaced by *. Hint: Use find and the index operator. Solution:
24
Exercise 6.3: function out = addToEnd(a, x) out = [a, x]; Just calling the function with a as argument does not change its value. a = addToEnd(a, x) will change a as desired.
25
Exercise 6.6 >> BooleanToTF([1 0 0 1 1 0 1 0]) ans = ‘TFFTTFTF’ etc.
26
Exercise 6.6 >> BooleanToTF([1 0 0 1 1 0 1 0]) ans = ‘TFFTTFTF’ etc. function res = BooleanToTF(bool) res = char('F' + zeros(size(bool))); res(bool) = 'T';
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.