MATLAB Introduction: Fortran
MATLAB Introduction: Fortran
FORTRAN:
real*8 A(10,10), B(10,10), C(10,10)
do i=1,10
do j=1,10
C(i,j) = A(i,j) + B(i,j)
10 continue
20 continue
MATLAB:
C=A+B
What is MATLAB
• Development Environment
• Mathematical Function Library
• MATLAB language
• Application Programming Language (not
discussed today)
MATLAB Desktop
Menu and toolbar
Workspace
History Command
Matrices & Vectors
• Transpose
Matrix:
Vector : >> A=[1 2; 3 4];
>> a=[1 2 3]; >> A'
>> a' ans =
1 1 3
2 2 4
3
Creating Vectors
Create vector with equally spaced intervals
>> x=0:0.5:pi
x =
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
0.2311
]
1:m
A(1,2:3)=[0.6068 0.4231]
Adding Elements to a Vector or a Matrix
>> A=1:3 >> C=[1 2; 3 4]
A= C=
1 2 3 1 2
>> A(4:6)=5:2:9 3 4
A= >> C(3,:)=[5 6];
1 2 3 5 7 9 C=
1 2
>> B=1:2 3 4
B= 5 6
1 2
>> B(5)=7; >> D=linspace(4,12,3);
B= >> E=[C D’]
1 2 0 0 7 E=
1 2 4
3 4 8
5 6 12
Graphics - 2D Plots
plot(xdata, ydata, ‘marker_style’);
For example: Gives:
>> x=-5:0.1:5;
>> sqr=x.^2;
>> pl1=plot(x, sqr, 'r:s');
Graphics - Overlay Plots
Use hold on for overlaying graphs
So the following: Gives:
• Development Environment
• Mathematical Function Library
• MATLAB language
• Application Programming Language (not
discussed today)
MATLAB Desktop
Menu and toolbar
Workspace
History Command
Matrices & Vectors
• Transpose
Matrix:
Vector : >> A=[1 2; 3 4];
>> a=[1 2 3]; >> A'
>> a' ans =
1 1 3
2 2 4
3
Creating Vectors
Create vector with equally spaced intervals
>> x=0:0.5:pi
x =
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
0.2311
]
1:m
A(1,2:3)=[0.6068 0.4231]
Adding Elements to a Vector or a Matrix
>> A=1:3 >> C=[1 2; 3 4]
A= C=
1 2 3 1 2
>> A(4:6)=5:2:9 3 4
A= >> C(3,:)=[5 6];
1 2 3 5 7 9 C=
1 2
>> B=1:2 3 4
B= 5 6
1 2
>> B(5)=7; >> D=linspace(4,12,3);
B= >> E=[C D’]
1 2 0 0 7 E=
1 2 4
3 4 8
5 6 12
Graphics - 2D Plots
plot(xdata, ydata, ‘marker_style’);
For example: Gives:
>> x=-5:0.1:5;
>> sqr=x.^2;
>> pl1=plot(x, sqr, 'r:s');
Graphics - Overlay Plots
Use hold on for overlaying graphs
So the following: Gives:
• M-Files
You can create your own programs using M-files, which
are plain text files containing MATLAB code. Use the
MATLAB Editor or another text editor to create a file
containing the same statements you would type at the
MATLAB command line. Save the file under a name that
ends in .m
• Arrays
Arithmetic operations on arrays are done element by
element. This means that addition and subtraction are the
same for arrays and matrices, but that multiplicative
operations are different. MATLAB uses a dot, or decimal
point, as part of the notation for multiplicative array
operations.
Example: A.*A
the result is an array containing the squares of the integers
ans =
256 9 4 169
25 100 121 64
81 36 49 144
16 225 196 1
• Multivariate Data
MATLAB uses column-oriented analysis for multivariate
statistical data. Each column in a data set represents a
variable and each row an observation. The (i,j)th element is
the ith observation of the jth variable.
A(-2), A(0)
Error: ??? Subscript indices must either be real positive integers or logicals.
A(4,2)
Error: ??? Index exceeds matrix dimensions.
Concatenation of Matrices
• x = [1 2], y = [4 5], z=[ 0 0]
A = [ x y]
1 2 4 5
B = [x ; y]
1 2
4 5
C = [x y ;z]
Error:
??? Error using ==> vertcat CAT arguments dimensions are not consistent.
Operators (arithmetic)
+ addition
- subtraction
* multiplication
/ division
^ power
‘ complex conjugate transpose
Matrix Index
• The matrix indices begin from 1 (not 0 (as in C))
• The matrix indices must be positive integer
Given:
A(-2), A(0)
Error: ??? Subscript indices must either be real positive integers or logicals.
A(4,2)
Error: ??? Index exceeds matrix dimensions.
Concatenation of Matrices
• x = [1 2], y = [4 5], z=[ 0 0]
A = [ x y]
1 2 4 5
B = [x ; y]
1 2
4 5
C = [x y ;z]
Error:
??? Error using ==> vertcat CAT arguments dimensions are not consistent.
Operators (arithmetic)
+ addition
- subtraction
* multiplication
/ division
^ power
‘ complex conjugate transpose
Matrices Operations
Given A and B:
.*element-by-element multiplication
./ element-by-element division
.^element-by-element power
The use of “.” – “Element” Operation
A = [1 2 3; 5 1 4; 3 2 1]
A=
1 2 3
5 1 4
3 2 -1
b = x .* y c=x./y d = x .^2
x = A(1,:) y = A(3 ,:)
b= c= d=
x= y= 3 8 -3 0.33 0.5 -3 1 4 9
1 2 3 3 4 -1
K= x^2
Erorr:
??? Error using ==> mpower Matrix must be square.
B=x*y
Erorr:
??? Error using ==> mtimes Inner matrix dimensions must agree.
Basic Task: Plot the function sin(x) between
0≤x≤4π
• Create an x-array of 100 samples between 0 and
4π.
>>x=linspace(0,4*pi,100);
0.8
0.6
>>y=sin(x); 0.4
0.2
-0.2
-0.4
-0.6
>>plot(y) -0.8
-1
0 10 20 30 40 50 60 70 80 90 100
Plot the function e-x/3sin(x) between 0≤x≤4π
>>plot(y2) 0.6
0.5
0.4
0.3
0.2
0.1
-0.1
-0.2
-0.3
0 10 20 30 40 50 60 70 80 90 100
Display Facilities
0.7
0.6
• plot(.)
0.5
0.4
0.3
Example:
0.2
0.1
>>x=linspace(0,4*pi,100); 0
>>y=sin(x); -0.1
>>plot(y) -0.2
>>plot(x,y) -0.3
0 10 20 30 40 50 60 70 80 90 100
0.7
• stem(.) 0.6
0.5
0.4
0.3
Example:
0.2
0.1
>>stem(y) 0
>>stem(x,y) -0.1
-0.2
-0.3
0 10 20 30 40 50 60 70 80 90 100
Display Facilities
• title(.)
>>title(‘This is the sinus function’)
This is the sinus function
1
0.8
• xlabel(.) 0.6
0.4
sin(x)
0
-0.2
• ylabel(.) -0.4
-0.6
-0.8
>>ylabel(‘sin(x)’) -1
0 10 20 30 40 50 60 70 80 90 100
x (secs)
Operators (relational, logical)
• == Equal to
• ~= Not equal to
• < Strictly smaller
• > Strictly greater
• <= Smaller than or equal to
• >= Greater than equal to
• & And operator
• | Or operator
Flow Control
• if
• for
• while
• break
• ….
Control Structures
Some Dummy Examples
• If Statement Syntax
if ((a>3) & (b==5))
Some Matlab Commands;
if (Condition_1) end
Matlab Commands
if (a<3)
elseif (Condition_2) Some Matlab Commands;
Matlab Commands elseif (b~=5)
Some Matlab Commands;
elseif (Condition_3) end
Matlab Commands
if (a<3)
else Some Matlab Commands;
Matlab Commands else
end Some Matlab Commands;
end
Control Structures
Some Dummy Examples
• For loop syntax for i=1:100
Some Matlab Commands;
end
Dummy Example
while (condition)
while ((a>3) & (b==5))
Matlab Commands Some Matlab Commands;
end
end
Use of M-File
Click to create a
new M-File
• Extension “.m”
• A text file containing script or function or program to run
Use of M-File
Save file as Denem430.m
Same Name
•
Writing User Defined Functions
Another function which takes an input array and returns the sum and product of its
elements as outputs
>>lookfor keyword