Transcript Script M

CSE123 Lecture 3
Files and File Management
Scripts
Files and File Management
Matlab provides a group of commands to manage user files
• pwd: Print working directory – displays the full path of the
present working directory.
• cd path: Change to directory (folder) given by path, which
can be either a relative or absolute path.
• dir : Display the names of the directories (folders) and files
in the present working directory.
• what: Display the names of the M-files and MAT-files in the
current directory.
• delete file: Delete file from current directory
• type file: Display contents of file (text file only, such as an
M-file).
Saving and Restoring Matlab Information
It is good engineering practice to keep records of calculations.
These records can be used for several purposes, including:
To revise the calculations at a later time.
To prepare a report on the project.
Diary Command
The diary commands allows you to record all of the input and displayed
output from a Matlab interactive workspace session. The commands
include:
• diary file: Saves all text from the Matlab session, except for the
prompts (>>), as text in file, written to the present working directory. If
file is not specified, the information is written to the file named diary.
• diary off: Suspends diary operation.
• diary on: Turns diary operation back on.
• diary: Toggles diary state
Saving and Restoring Matlab Information
Example:
>> diary roots
>> a=1;
>> b=5;
>> c=6;
>> x = -b/(2*a);
>> y = sqrt(b^2-4*a*c)/(2*a);
>> s1 = x+y
s1 =
-2
>> s2 = x-y
s2 =
-3
The file roots is written in your current working directory. It
can be displayed by Matlab command type roots.
Storing and Loading Workspace Values
save : Stores workspace values (variable names,
sizes, and values), in the binary file matlab.mat in the
present working directory
save data :Stores all workspace values in the file
data.mat
save data_1 x y :Stores only the variables x and
y in the file data_1.mat
load data_1 :Loads the values of the workspace
values previously stored in the file data_1.mat
Script M-Files
•Group of Matlab commands placed in a text file with
a text editor.
•Matlab can open and execute the commands exactly
as if they were entered at the Matlab prompt.
•The term “script” indicates that Matlab reads from the
“script” found in the file. Also called “M-files,” as the
filenames must end with the extension ‘.m’, e.g.
example1.m.
Script M-Files
Example : Create the file named
qroots.m in your present working
directory using a text editor:
%qroots:Quadratic
root
finding
script
format
compact;
a=1;
b=5;
c=6;
x = -b/(2*a);
y=sqrt(b^2-4*a*c)/(2*a);
s1 = x+y
s2 = x-y
To execute the script M-file,
simply type the name of the
script file qroots at the
Matlab prompt:
>> qroots
a =
1
b =
5
c =
43
6
s1 =
-2
s2 =
-3
Effective Use of Script Files
1. The name must begin with a letter and may include
digits and the underscore character.
2. Do not give a script file the same name as a variable it
computes
3. Do not give a script file the same name as a Matlab
command or function.
To check existence of command, type
exist(’rqroot’). This command returns one of the
following values:
0 if rqroot does not exist
1 if rqroot is a variable in the workspace
2 if rqroot is an M-file or a file of unknown type in
the Matlab search path
….
Effective Use of Script Files
4. All variables created by a script file are defined as
variables in the workspace. After script execution, you can
type who or whos to display information about the names,
data types and sizes of these variables.
5. You can use the type command to display an M-file
without opening it with a text editor.
For example, to view the file rqroot.m, the command is
type rqroot.
Matlab Search Path, Path Management
Matlab search path: Ordered list of directories that
Matlab searches to find script and function M-files
stored on disk.
Commands to manage this search path:
matlabpath: Display search path.
addpath dir: Add directory dir to beginning of
matlabpath. If you create a directory to store your
script and function M-files, you will want to add this
directory to the search path.
rmpath dir: Remove directory dir from the
matlabpath.
Different types of Variables
Logical operators, Conditional Statements
and If Blocks
Different types of Variables
Numerical Variables
Integer.
positive whole numbers {1, 2, 3,... }
negative whole numbers {-1, -2, -3,... }
Matrix index (ex: B(2,1) )
Counters
zero {0}
Real.
real number.
Complex.
a+bi
• a and b are real numbers
All calculus results…
Complex calculus
Geometry Vector calculus
• i is an imaginary number. ( i2= -1 )
Matlab Notation
N= a+bi
or
N=a+bj
Examples:
A= 5+10i;
B=2.5+20.2j;
Different types of Variables
Character/string Variables
Character/string.
Strings of alphanumeric elements
Matlab Notation
A=’string’
All labels and titles.
Filenames
Examples:
name=’ James’;
Date=’October 7th’;
Example:
>>myname=’James’;
>>whos myname
Strings and characters follow the same rules
as other matrices, with each character
counting for one element.
Name
Size Bytes Class
myname
1x5
10 char array
Different types of Variables
Logical Variables
Logical Variables or Boolean.
Logical expression with 2 states:
Condition statements
Decision making
0 or 1
which means:
false or true
Example:
Example:
>>A=true
A= 1
>> whos A
Name
Size Bytes Class
>>B=false
B= 0
>> whos B
Name
Size
A
1x1
1
logical array
B
1x1
Bytes Class
1
logical array
Structured Programming
Structured Programming
Sequential Programming
Initialization
Initialization
Input
Initialization
Input
Calculation
Calculation
Results
Decision
making
?
Calculation 1
Result 1
Condition
statements
Calculation 2
Result 2
Relational Operators
Decision making uses comparison of logical variables
 Comparison is done by creating logical expressions
Format of SIMPLE Logical Expressions:
****** expression1 relational-operator expression2******
relationaloperator
Comparison
==
Is equal to
>
Is greater than
<
Is smaller than
>=
Is greater or equal to
<=
Is smaller or equal to
~=
Is not equal to
Example:
>> A=1; B=2;
>> A==B
ans =
0
>> A>B
>> A<B
>> A>=B
>> A<=B
>> A~=B
ans =
ans =
ans =
ans =
ans =
0
1
0
1
1
Logical Operators
Format of COMPOUND Logical Expressions:
(exp1 relational-op exp2) Logical operator (exp3 relational-op exp4)
Logical
operator
operation
&
|
xor
and
or
or (exclusive)
~
not
Truth
Table
A
B
C= A|B
~(A|B)
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
A
B
C= A&B
~(A&B)
A
B
C= xor(A,B)
~xor(A,B)
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
Logical Variables
Examples:
>> A=1; B=2;
>> (A==B) & (A>B)
>> (A<B) & (A==B)
ans = 0
ans = 0
>> (A==B) | (A>B)
>> (A<B) | (A==B)
ans =
ans =
0
1
>> xor( (A==B), (A<B) )
>> xor( (A~=B), (A<B) )
ans =
ans =
1
0
>> ~(A<B)
>> ~(A>B)
ans =
ans =
0
1
>> (A>0) & (B>A)
ans = 1
>> (A>0) & (B>A)&(B<0) ans = 0
Structured Programming
Format of if statement:
False
if
if Logical Expression
Statements
……
end
Format of if else statement:
if Logical Expression
Statement 1
else
Statement 2
end
True
Statement
if
False
True
Statement1
Statement2
Structured Programming
Example: iftest1.m
Initialization
Input X
False
If
X>=0
True
Calculate
X
Display Result
End of script
% Program to test the if statement #1
X=input(‘Enter value for x:’);
if X>=0
Y=sqrt(X);
fprintf(‘The squareroot of %3.2f is %4.3f’,X,Y)
end
>>iftest1
Enter value for x: 9
The squareroot of 9.00 is 3.0000
>>iftest1
Enter value for x: -2
>>
Structured Programming
Example: iftest2.m
Initialization
Input X
% Program to test the if statement #2
X=input(‘Enter value for x:’);
if X>=0
Y=sqrt(X);
fprintf(‘The squareroot of %3.2f is %3.4f’ ,X,Y)
else
disp(‘x is negative: there is no real result’)
end
False
If X>=0
True
Calculate
X
Display Result
End of script
Display
NO Result
>>iftest2
Enter value for x: 3
The squareroot of 9.00 is 3.0000
>>iftest2
Enter value for x: -2
x is negative: there is no real result
>>
Structured Programming
Format of if elseif else statement:
if Logical Expression
Statements 1
elseif Logical Expression
Statements 2
else
Statements 3
end
if
False
elseif
True
True
Statement1
Statement2
False
Statement3
Structured Programming
Example: iftest3.m
Initialization
Input X
False
If X>0
True
Display Result >0
False
% Program to test the if statement #3
X=input(‘Enter value for x:’);
if X>0
disp(‘x is positive’);
elseif X<0
disp(‘x is negative’);
else
disp(‘x equal 0’);
end
If X<0
True
Display Result <0
Display Result = 0
End of script
>>iftest3
Enter value for x: 3
x is positive
>>iftest3
Enter value for x: -2
x is negative
Structured Programming
“nesting “
Problem:
% nested “if statements” example
•Pick a random number N
(-2<N<2)
Calculate B=
N= rand(1)*4-2;
log( N )
•If N positive calculate: A=log(N)
•if A positive calculate: B=sqrt(A)
if N>=0
A=log(N);
A=log(N);
if A>0
if A>0
B=sqrt(A);
B=sqrt(A);
endend
end
Use
indentation
(Tab key)
Structured Programming
The “SWITCH” structure
switch variable
case test1
Statement 1
case test2
Statement 2
…..
otherwise
Statement n
end
Switch
Statement1
Statement3
Statement2
Statement n
Statement4
The “SWITCH” structure
% program to test switch
>> Testswitch
A=input('Your choice [1,2 3] ? ');
Your choice [1,2 3] ? 1
switch A
case 1
disp('Choice 1')
case 2
disp('Choice 2')
case 3
disp('Choice 3')
otherwise
disp('Wrong choice')
end
Choice 1
>> Testswitch
Your choice [1,2 3] ? 2
Choice 2
>> Testswitch
Your choice [1,2 3] ? 3
Choice 3
>> Testswitch
Your choice [1,2 3] ? 7
Wrong choice
Example1
Write a script example.m to find roots of a
second order equation
ax2+bx+c=0.
When the script is executed it will
– ask the user enter the coefficients a,b,c
– calculate discriminant
– calculate the roots and display the case
according to sign of discriminant.
Example2
Write a script that allows a user to enter a
string containing a day of a week (“Sunday”,
“Monday” etc) uses a switch construct to
convert the day to its corresponding number,
where Monday is the first day of the week.
Print out the resulting day number. Also be
sure to handle the case of an illegal day
name.