mathlab7.pdf

Post on 28-Dec-2015

4 views 3 download

Transcript of mathlab7.pdf

II-Other Data Structures•Besides numbers, another data type in Matlab is the

character data type.•Characters are designated by enclosing them in single

quotes. >> C = ‘x‘

C = x>> x1=double(c)

x1 =120

•>> char(65)ans = A

Strings•A sequence of characters within single quotes is

referred to as a string.>> D = ‘Training' ;

•A string is a horizontal 1D character array, whose length is the number of characters. The string D above

has eight characters, and is therefore a 1-by-8 array. >> size(D)

ans = 1 8•Individual elements can be referenced as for any other

array, such as D(5) which is element ‘n'.

Cell arrays•Array for which the elements are cells and can

hold other MATLAB arrays of different types.•to point to elements of cell arrayis the use of curly

braces {...}.•Using celldisp function to display cell array

» A(1,1) = {[1 4 3;0 5 8;7 2 9]};» A(1,2) = {'Anne Smith'};» A(2,1) = {3+7i};» A(2,2) = {-pi:pi/10:pi};

Structures•Arrays with named data containers called fields.

» patient.name='John Doe';» patient.billing = 800.00;» patient.Ptest= [79 75 80;110 108 120];

• Also, Build structure arrays using the struct function.patient(1) = struct('name', 'John Doe', ‘billing',800,‘ptest', [79 75

80;110 108 120])

Multidimensional ArraysThe first references array dimension 1, the row.

The second references dimension 2, the column.

The third references dimension 3, The page.

» A = zeros(3,3,4);» A(:,:,2) = ones(3)A(:,:,1) =

0 0 00 0 0 0 0 0

A(:,:,2) =1 1 11 1 11 1 1

A(:,:,3) =0 0 00 0 0 0 0 0

A(:,:,4) =0 0 00 0 0 0 0 0

0 0 0 0 0 0

0 0 0

Page N

Page 1

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

1 1 1 1

1 2 3 4

1 3 6 10

1 4 10 20

Script and Function Files

• Script Files• Work as though you typed commands into

MATLAB prompt• Variable are stored in MATLAB workspace

• Function Files• Let you make your own MATLAB Functions• All variables within a function are local• All information must be passed to functions as

parameters• Subfunctions are supported

II-Scripts and Functions•Script-files contain a sequence of Matlab commands

create a file called test1.m that contains these MATLAB commands

%this program is to help me understand the scripts im matlabx=1:0.1:15;

y=10*sin(x)-7*log10(x.^2);

plot(x,y);

grid onExecuted by typing its name

>> test1

Scripts and Functions (cont’d)

Displaying code and getting help

To open and edit the code , use edit command>> edit test1

• To list code, use type command• >> type test1

• The help command displays first consecutive comment lines

• >> help test1

FunctionsFunctions describe subprogramsTake inputs, generate outputsHave local variables (invisible in global workspace)The names of the M-file and of the function should be the same. Comments may be placed above the function header

Basic Parts of a Function M-File

function y = mean (x)% MEAN Average or mean value.% For vectors, MEAN(x) returns the mean value.% For matrices, MEAN(x) is a row vector% containing the mean value of each column.[m,n] = size(x);if m == 1

m = n;endy = sum(x)/m;

Output Arguments Input ArgumentsFunction Name

Online Help

Function Code

47

Function ExampleEvaluate the function f(x,y)

[a b] = myfun(10,20);

===============================

where the M-file myfun.m is

Function [w,z] = myfun(x, y)

z = y*sin(x)+x*cos(y);

W=x+y

VectorizationLoops are slow: Replace loops by vector operations!Memory allocation takes a lot of time: Pre-allocate memory!

Use profile to find code bottlenecks!

Exampletic

x=-250:0.1:250;for ii=1:length(x)

if x(ii)>=0,s(ii)=sqrt(x(ii));

elses(ii)=0;

end;end;

ticx=-250:0.1:250;s=sqrt(x); s(x<0)=0;toc;

Preallocation

This code uses the function ones to preallocate the vectors (r1,r2) created in the for loop.This makes the for loop execute significantly faster.r1 = ones(1,100);

r2=ones(1,100);

for n = 1:100;

x=rand(1,n);

r1(n) = sum(x);

r2(n) = mean(x);

end

Function FunctionsThat is, one function works on another function. The function

functions includeZero finding Optimization

Quadrature Ordinary differential equations

====================================================================

Create an m file for the function test.function y=test(x);

y=7*sin(x)-7*log10(x.^2)========================================

Evaluate this test function at a set of points in the interval 1 <x <20 w = 1:0.1:20;

z = test(w);

Function Functions(cont’d)Then plot the function with

Plot(w,z);The output will be

Function Functions(cont’d)

Find the minimum of the function using(fminsearch)

min = fminsearch(@test,17)

min = 17.3289=================================================

To evaluate the function at the minimium value,

test(min)

ans =

-24.3340

rough guess at the location of the minimum.

To compute the area under the curve in the graph int = quadl(@test,0,1)

int =9.2980

if you search for a zeroz = fzero(@test,2)

you will find one outside the interval z =

2.3212

Function Functions(cont’d)

Thank You