MATLAB `s Introductions Mohammad Aghaahmadi. Matlab is a commercial What is MATLAB? "Matrix...
-
Upload
louise-lamb -
Category
Documents
-
view
237 -
download
4
Transcript of MATLAB `s Introductions Mohammad Aghaahmadi. Matlab is a commercial What is MATLAB? "Matrix...
What is MATLAB?
• high-performance software – Computation– Visualization– Easy-to-use environment.
• high-level language – Data types– Functions– Control flow statements– Input/output– Graphics– Object-oriented programming
capabilities
Application of MATLAB in Engineering
• Image Processing• Image Acquisition• Signal processing• …• And Simulation!
Variables• Variable names:
– Must start with a letter– May contain only letters, digits, and the underscore “_”– Matlab is case sensitive, i.e. one & OnE are different
variables.– Matlab only recognizes the first 31 characters in a variable
name.
• Assignment statement:– Variable = number;– Variable = expression;
• Example:>> tutorial = 1234;>> tutorial = 1234tutorial = 1234
NOTE: when a semi-colon ”;” is placed at the end of each command, the result is not displayed.
MATLAB BASICSMATLAB BASICSInitializing with Shortcut
Expressions
first: increment: last• Colon operator: a shortcut notation
used to initialize arrays with thousands of elements
>> x = 1 : 2 : 10;>> angles = (0.01 : 0.01 : 1) * pi;
• Transpose operator: (′) swaps the rows and columns of an array
>> f = [1:4]′;>> g = 1:4; >> h = [ g′ g′ ];
h=
1 12 23 34 4
MATLAB BASICSMATLAB BASICS
و به وسيله تركيب first: increment: lastماتريس زير را به كمك عبارت
ماتريس ها توليد كنيد
5 6 7 83 7 11 151 0 -1 -2
Changing the data format>> value = 12.345678901234567;
format short 12.3457format long 12.34567890123457format short e 1.2346e+001format long e 1.234567890123457e+001format short g 12.346format long g 12.3456789012346format rat 1000/81
MATLAB BASICSMATLAB BASICS
Calculations at the Command Line
» a = 2;
» b = 5;
» a^b
ans =
32
» x = 5/2*pi;
» y = sin(x)
y =
1
» z = asin(y)
z =
1.5708
» a = 2;
» b = 5;
» a^b
ans =
32
» x = 5/2*pi;
» y = sin(x)
y =
1
» z = asin(y)
z =
1.5708
Results assigned to “ans” if name not specified
() parentheses for function inputs
Semicolon suppresses screen output
MATLAB as a calculator Assigning Variables
A Note about Workspace:Numbers stored in double-precision floating point format
» -5/(4.8+5.32)^2ans = -0.0488» (3+4i)*(3-4i)ans = 25» cos(pi/2)ans = 6.1230e-017» exp(acos(1))ans = 1
» -5/(4.8+5.32)^2ans = -0.0488» (3+4i)*(3-4i)ans = 25» cos(pi/2)ans = 6.1230e-017» exp(acos(1))ans = 1
The Matrix in MATLAB
4 10 1 6 2
8 1.2 9 4 25
7.2 5 7 1 11
0 0.5 4 5 56
23 83 13 0 10
1
2
Rows (m) 3
4
5
Columns(n)
1 2 3 4 51 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
A = A (2,4)
A (17)
Rectangular Matrix:Scalar: 1-by-1 arrayVector: m-by-1 array
1-by-n arrayMatrix: m-by-n array
» a=[1 2;3 4]
a =
1 2
3 4
» b=[-2.8, sqrt(-7), (3+5+6)*3/4]
b =
-2.8000 0 + 2.6458i 10.5000
» b(2,5) = 23
b =
-2.8000 0 + 2.6458i 10.5000 0 0
0 0 0 0 23.0000
» a=[1 2;3 4]
a =
1 2
3 4
» b=[-2.8, sqrt(-7), (3+5+6)*3/4]
b =
-2.8000 0 + 2.6458i 10.5000
» b(2,5) = 23
b =
-2.8000 0 + 2.6458i 10.5000 0 0
0 0 0 0 23.0000
•Any MATLAB expression can be entered as a matrix element
•Matrices must be rectangular.) set undefined variables to zero)
Entering Numeric Arrays
Row separatorsemicolon (;)
Column separatorspace / comma (,)
Use square brackets [ ]
Array Subscripting /Indexing
4 10 1 6 2
8 1.2 9 4 25
7.2 5 7 1 11
0 0.5 4 5 56
23 83 13 0 10
1
2
3
4
5
1 2 3 4 51 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
A =
A(3,1)A(3)
A(1:5,5)A(:,5) A(21:25)
A(4:5,2:3)A([9 14;10 15])
A(1:end,end) A(:,end)A(21:end)’
Colon OperatorColon Operator
C = [1,2,5; -1,0,1; 3,2,-1; 0,1,4]
F = C(:, 2:3) = [2,5; 0,1; 2,-1; 1,4]
123
101E
410
123
101
521
C
Colon OperatorColon Operator• Creating new matrices from an
existing matrix
C = [1,2,5; -1,0,1; 3,2,-1; 0,1,4]
E = C(2:3,:) = [-1 0 1; 3 2 -1]
Colon OperatorColon Operator• Creating new matrices from an existing
matrix
C = [1,2,5; -1,0,1; 3,2,-1; 0,1,4]
G = C(3:4,1:2) = [3,2; 0,1]
10
23G
410
123
101
521
C
Matrix Multiplication» a = [1 2 3 4; 5 6 7 8];
» b = ones(4,3);
» c = a*b
c =
10 10 10 26 26 26
» a = [1 2 3 4; 5 6 7 8];
» b = ones(4,3);
» c = a*b
c =
10 10 10 26 26 26
[2x4]
[4x3]
[2x4]*[4x3] [2x3]
a(2nd row).b(3rd column)
» a = [1 2 3 4; 5 6 7 8];
» b = [1:4; 1:4];
» c = a.*b
c =
1 4 9 16 5 12 21 32
» a = [1 2 3 4; 5 6 7 8];
» b = [1:4; 1:4];
» c = a.*b
c =
1 4 9 16 5 12 21 32 c(2,4) = a(2,4)*b(2,4)
Array Multiplication
Multidimensional Arrays
» A = pascal(4);» A(:,:,2) = magic(4)A(:,:,1) = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20A(:,:,2) = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
» A = pascal(4);» A(:,:,2) = magic(4)A(:,:,1) = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20A(:,:,2) = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
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
The first references array dimension 1, the row.
The second references dimension 2, the column.
The third references dimension 3, The page.
A(2,1,2)
A(3:4,2:3,1)
b=A(3,4,5)b=0c=A(3,3,9)c=1
» A = pascal(4);» A(:,:,2) = magic(4)A(:,:,1) = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20A(:,:,2) = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
» A = pascal(4);» A(:,:,2) = magic(4)A(:,:,1) = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20A(:,:,2) = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
Multidimensional Arrays
MATLAB BASICSMATLAB BASICS
ماتريس زير را به ساده ترين و کوتاه ترين شکل ممکن تعريف کنيد.
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1 2 3 4
1 3 5 7
1 1 1 1
5 4 3 2
1 2 3 4
1 3 5 7
1 1 1 1
5 4 3 2
Matrix Manipulation Functions
• zeros: Create an array of all zeros
• ones: Create an array of all ones
• eye: Identity Matrix
• rand: Uniformly distributed random numbers
• size: Return array dimensions • fliplr: Flip matrices left-right
• flipud: Flip matrices up and down
>> zeros(2,2,4)
ans(:,:,1) = 0 0 0 0ans(:,:,2) = 0 0 0 0ans(:,:,3) = 0 0 0 0ans(:,:,4) = 0 0 0 0
>> ones([2,2,4])
ans(:,:,1) = 1 1 1 1ans(:,:,2) = 1 1 1 1ans(:,:,3) = 1 1 1 1ans(:,:,4) = 1 1 1 1
>> eye(5,7)ans = 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0
>> zz=ones([2,2,4]);>> a=size(zz);
>> a=[ 1 2 ; 3 4];>> fliplr(a)ans = 2 1 4 3
Matrix Manipulation Functions• rot90: rotate matrix 90
• tril: Lower triangular part of a matrix
• triu: Upper triangular part of a matrix
• dot: Vector dot product
• det: Matrix determinant
• inv: Matrix inverse
MATLAB BASICSMATLAB BASICS
sumتابع
جمع مولفه هاي يك ماتريس را محاسبه كرده و برميگرداند. حاصل
B = sum(A); returns sums along different dimensions of an array.
>> a=[1 2 3 ; 7 5 10]
B = sum(A,dim) sums along the dimension of A specified by scalar dim
>> sum(a)
ans = 8 7
13
>> a(:,:,2)=2;
>> sum(a,1)
ans(:,:,1) = 8 7 13
ans(:,:,2) = 4 4 4
>> sum(a,2)ans(:,:,1) = 6 22
ans(:,:,2) = 6 6
MATLAB BASICSMATLAB BASICS
diffتابع
تفريق مولفه هاي يك ماتريس را محاسبه كرده و برميگرداند. حاصل
Y = diff(X); calculates differences between adjacent elements of X.
>> z
z(:,:,1) =
6 7 10
z(:,:,2) =
3 4 5
>> a=[1 3 5;7 10 15];>> a(:,:,2)=[1:3;4:2:8]; >> z=diff(a,1);
[X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)]
Y = diff(X,n,dim) is the nth difference function calculated
along the dimension specified by scalar dim.
z=diff(a,2);
Y = diff(X,n) applies diff recursively n times, resulting in
the nth difference.
>> z
z(:,:,1) =
1 3
z(:,:,2) =
1 1
>> z=diff(a,2,2)z(:,:,1) = 0 2z(:,:,2) = 0 0
MATLAB BASICSMATLAB BASICS
diffتابع
Character Arrays (Strings)
• Created using single quote delimiter (')
• Each character is a separate matrix element (18 bits of memory per character)
• Indexing same as for numeric arrays
» str = ‘M Moosavi'
str =
M Moosavi
» str2 = 'Isn''t MATLAB great?'
str2 =
Isn't MATLAB great?
» str = ‘M Moosavi'
str =
M Moosavi
» str2 = 'Isn''t MATLAB great?'
str2 =
Isn't MATLAB great?
1x9 vectorstr = M o o s a v iM
» str ='Hi there,';
» str1='Everyone!';
» new_str=[str, ' ', str1]
new_str =Hi there, Everyone! » str2 = 'Isn''t MATLAB great?';
» new_str2=[new_str; str2]new_str2 =Hi there, Everyone!Isn't MATLAB great?
» str ='Hi there,';
» str1='Everyone!';
» new_str=[str, ' ', str1]
new_str =Hi there, Everyone! » str2 = 'Isn''t MATLAB great?';
» new_str2=[new_str; str2]new_str2 =Hi there, Everyone!Isn't MATLAB great?
1x19 vector
1x9 vectors
String Array Concatenation
Using [ ] operator:Each row must be same length
Row separator:semicolon (;)
Column separator:space / comma (,)
For strings of different length:• STRVCAT• char
» new_str3 = strvcat(str, str2)new_str3 =Hi there, Isn't MATLAB great?
» new_str3 = strvcat(str, str2)new_str3 =Hi there, Isn't MATLAB great?
2x19 matrix
2x19 matrix(zero padded)
Working with String Arrays• String Comparisons
– strcmp: compare whole strings– strncmp: compare first ‘N’ characters– findstr: finds substring within a larger string– Strcat: link two or more strings together
• Converting between numeric & string arrays:– num2str: convert from numeric to string array– str2num: convert from string to numeric array
a=strcmp('Yes', 'No') a= 0b=strcmp('Yes', 'Yes') b= 1
Working with String Arraysa='alireza';b=‘reza';comp=findstr(a,b)comp = 4comp=findtr(a,'ah')comp = []
a='alireza';b='ali';comp=strncmp(a,b,
3)comp = 1comp=strncmp(a,b,
4)comp = 0
a = 'hello 'b = 'goodbye'strcat(a, b)ans =hellogoodbye
Structures
Arrays with named data containers called fields.
» patient.name='John Doe';» patient.billing = 127.00;» patient.test= [79 75 73; 180 178 177.5; 220 210 205];
» patient.name='John Doe';» patient.billing = 127.00;» patient.test= [79 75 73; 180 178 177.5; 220 210 205];
•Also, Build structure arrays using the struct function.•Array of structures
» patient(2).name='Katty Thomson';» Patient(2).billing = 100.00;» Patient(2).test= [69 25 33; 120 128 177.5; 220
210 205];
» patient(2).name='Katty Thomson';» Patient(2).billing = 100.00;» Patient(2).test= [69 25 33; 120 128 177.5; 220
210 205];
Cell ArraysArray for which the elements are cells and can hold other MATLAB arrays of different types.
» 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};
» 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};
•Using braces {} to point to elements of cell array
•Using celldisp function to display cell array
if expression1
statements1
elseif expression2
statements2
else
statements3
end
Loop Controls
مثالscore=[18 17 12
20]
i=2;
if score(i)>18
grade=‘A’
elseif score(i)>16
grade=‘B’
elseif score(i)>14
grade=‘C’
else
grade=‘D’
end
if-endحلقه
for index = start : increment :
end
statements
end
حلقه هاي كنترلي :
در نوشJتن توابJع بسJيار پيش مي آيJد كJه نيJاز بJه انجJام مكJرر يJك
هJاي از حلقJه مJوارد گونJه اين در ميباشJد دسJتورات از سJري
حلقJه چنJد معJرفي بJه جJا اين در اسJتفاده مي شJود. كنJترلي
كنترلي مي پردازيم.
Loop Controls
for-end حلقه مثالfor a=1:2:5;
x=0;
for j = 1:5
x=x+a(j);
end
end
Functions in MATLAB
ب�ه مجموع�ه اي از دس�تورات گفت�ه مي ش�ود ك�ه تابع
انج�ام ورودي ه�اي داده روي ب�ر را خ�اص فراين�دي
مي فرستد.matlabداده و خروجي را به
workspace functioninput output
Functions in MATLAB
آغاز ميشود.functionهر تابع با كلمه كليدي •
بايسJتي در مسJير • باشJند اينكJه قابJل فراخJواني بJراي توابJع
معيني ذخيره شوند.
فراخواني يك تابع از طريق نام آن صورت ميگيرد.•
يك تابع ميتواند در بدنه خود ديگر توابع را فراخواني كند.•
هر تابع ميتواند خود محتوي چند تابع باشد.•
پسJوند • بJا كJه ميشJوند متJني محسJوب هJاي فايJل m.توابJع
ذخيره مي گردند.
Functions in MATLAB
هر تابع ميتواند شامل چند متغير ورودي و يا خروجي باشد.•
ايجJاد ميشJوند در • يJا تJابع تعريJف و متغJير هJايي كJه در بدنJه
صJورتي كJه جJزء متغيرهJاي خJروجي نباشJند در فضJاي كJاري
قابل شناسايي نيستند.تعريJف ذيJل بJه صJورت تابع
مي شود.
function [out1, out2, ...] = funname(in1,
in2, ...) …,out1,out2 متغيرهJاي ورودي ومتغيرهJاي …,in1,in2متغJير هJاي
متغيرهاي خروجي ميباشند.
Functions in MATLABدر بتJوان اينكJه matlabبراي
از تJابع نوشJت كJافي اسJت
گزينJJه fileمنJJوي new
گزينJJه را mfileوسJJپس
انتخJاب نمJود. در اين صJورت
ميشJود بJاز صJفحه سJفيدي
را تJابع نوشJتن امكJان كJه
فراهم مي آورد.
Functions in MATLAB
switch switch_expr
case case_expr
statement, ..., statement
case {case_expr1, case_expr2,...}
statement, ..., statement
otherwise
statement, ..., statement
end
Loop Controls
-switch-caseعبارت
end
مثال
method = 'Bilinear';
Switch method
case {'linear','bilinear'}
disp('Method is linear')
case 'cubic'
disp('Method is cubic')
otherwise
disp('Unknown method.')
end
Functions in MATLAB
:مثال
مي خواهيم تابعي بنويسيم كه يك عدد را دريافت كرده function n = factorial (k) محاسبه كند. forوسپس فاكتوريل آن را به كمك حلقه
% The function [n] = factorial(k) calculates and% returns the value of k factorial. If k is negative,% an error message is returned.if (k < 0) n = 'Error, negative argument’;elseif k<2 n=1;else n = 1; for j = 2:k
n = n * j; endend
توضيحات تابع
دستورات تابع
Functions in MATLAB
>> a=factorial(5)
a =
120
>> a=factorial(-1)
a =
Error, negative argument
در تJابع اجJراي از زيJر matlabپس بJه صJورت نتJايج
قابل مشاهده است.
Functions in MATLAB
اگJر قJرار باشJد يJك تJابع مشJتق وانتگJرال يJك 1.
متغJير چنJد داراي بايJد نمايJد تعJيين را رشJته
در صJورت امكJان اين ورودي و خJروجي باشJد.
را نوشJته و بوسJيله آن مشJتق وانتگJرال تJابع
تابعی دلخواه را محاسبه كنيد
را 2. بJرداري مJاتريس يJك كJه بنويسJيد تابعي
بJه بJزرگ از آنJرا هJاي داده و كJرده دريJافت
كوچك رديف نموده و در خروجي بفرستد.
Functions in MATLAB
function [dif integ] = difint (func)
if isstr(func)~=1
disp(‘please input a string
function’)
return
end
dif=diff(func);
integ=int(func);
Functions in MATLAB
گاهي اوقJات پيش مي آيJد كJه تعJداد متغJير هJاي ورودي و يJا خJروجي
يJك تJابع وابسJته بJه عملكJرد تJابع تغيJير ميكنJد در نتيجJه هنگJام تعريJف
ميتوانJد داراي plotتJابع دچJار مشJكل ميشJويم. بJه عنJوان مثJال تJابع
نحJوه نمJودار و نJوع بJه اينكJه وابسJته يJا و باشJد يJك متغJير ورودي
ترسJيم بJه طJور نامحJدود متغJير ورودي داشJته باشJد. همچJنين اين تJابع
ميتوانJد داراي يJك متغJير خJروجي باشJد يJا اصJال متغJير خJروجي نداشJته
توابJع از اين مواقJع در بJه عنJوان varargin , varargoutباشJد.
متغير ورودي ويا خروجي استفاده مي شود.
, varargin , varargout , nargin توابع
nargout
Functions in MATLAB
بJه عنJوان ورودي تJابع عمJل كJرده و كليJه متغيرهJاي vararginمتغJير
تJابع حJاوي هJر بJراي متغJير اين قJرار ميدهJد. در خJود را ورودي
ورودي هJاي همJان تJابع اسJت. نJوع آن سJلولي و طJول آن برابJر بJا
تعداد ورودي هاي تابع ميباشد.
بJه عنJوان خJروجي تJابع عمJل كJرده و حJاوي كليJه varargoutمتغJير
متغيرهJايي خJروجي تJابع اسJت. نJوع آن سJلولي و طJول آن برابJر بJا
تعداد خروجي هاي تابع ميباشد.
بJه تJرتيب محتJوي تعJداد متغيرهJاي خJروجي nargin , nargoutمتغJير
و ورودي هستند. طول آنها برابر يك و نوع آنها عددي است.
, varargin , varargout , nargin توابع
nargout
مثالfunction myplot(x,varargin)plot(x,varargin{:})
collects all the inputs starting with the second input into the variable varargin. myplot uses the comma-separated list syntax varargin{:} to pass the optional parameters to plot. The call
myplot(sin(0:.1:1),'color',[.5 .7 .3],'linestyle',':')
results in varargin being a 1-by-4 cell array containing the values 'color', [.5 .7 .3], 'linestyle', and ':'.
Functions in MATLAB
, varargin , varargout , nargin توابع
nargout
مثالfunction [s,varargout] = mysize(x)nout = max(nargout,1)-1;s = size(x);for k=1:nout, varargout(k) = {s(k)}; end
returns the size vector and, optionally, individual sizes. So
[s,rows,cols] = mysize(rand(4,5));
Returns
s = [4 5], rows = 4, cols = 5.
Functions in MATLAB
, varargin , varargout , nargin توابع
nargout
محسوب MATLABرسم نمودار يكي از قابليت هاي مهم
به دو دسته MATLABمي گردد. توابع رسم نمودار در
تقسيم ميشوند:
توابع ماتريسي •
توابع سمبليك•
MATLABدر رسم نمودار
توابعي كه با ماتريس ها كار ميكنند و متغير .ورودي آنها ماتريس ها هستند
توابع
ماتريسي
عبارتند MATLAB تعدادي از توابع ماتريسي
,plot3,plot: ازbar,bar3,pie,pie3,contour
MATLABدر رسم نمودار
توابعي كه متغيرهاي ورودي آنها به صورت سمبوليك يا رشته اي مي باشند.
:عبارتند از MATLABتعدادي از توابع سمبليك
ezplot,ezcontour ,ezsurf .
توابع
سمبوليك
MATLABدر رسم نمودار
رسم دو بعدي
Plotتابع
MATLAB پرك�اربردترين ت�ابع plotت�ابع
دوبع�دي محس�وب ه�اي نم�ودار رس�م در
ب�راي را زي�ادي امكان�ات و ش�ود مي
مي ف�راهم خ�روجي در تص�وير وي�رايش
آورد.
MATLABدر رسم نمودار
plotنحوه ي استفاده از تابع
MATLABدر رسم نمودار
Handle = plot(X1,Y1,LineSpec,'PropertyName',PropertyValue);
م�اتريس ه�اي ب�رداري هم ان�دازه X1,Y1در عب�ارت ب�اال ، روي ب�ر ي�ك ب�ه ي�ك ب�ه ص�ورت اس�ت ق�رار ك�ه هس�تند
رسم شوند.X,Yمحورهاي متغ�ير LineSpec ميت�وان درآن ك�ه اس�ت رش�ته ي�ك
خصوص�يات رن�گ خ�ط، ن�وع م�اركر(ب�ه عن�وان مث�ال م�اركر وي�ا س�تاره باش�د) و ن�وع خ�ط(- ، توان�د ب�ه ص�ورت مرب�ع مي
-- ، : ، .-)، را تعيين نمود. PropertyName تم�امي خ�واص ش�يئ ش�امل ‘Line’
مي گ�ردد ك�ه ق�رار اس�ت ت�ا ب�ا مق�ادير ع�ددي ي�ا رش�ته اي PropertyValue ش�����وند . .(مق�����داردهي PropertyName رش�ته ظ�اهر ب�ه ص�ورت مي هميش�ه
شود.)
x = -pi:pi/10:pi;y=sin(x);h=plot(x,y, '-.r','linewidth',3);
title('Sample Plot','fontsize',14);xlabel('X values','fontsize',14);ylabel('Y values','fontsize',14);
legend('Y data')
MATLABدر رسم نمودار
Linewidth=2Color=redTitle= ‘y= exponential(x)’Xlabel= ‘x’Ylabel= ‘exp(x)’
Marker type =‘*’
رسم نماييد. 0.1 با دقت ]10 10[- را در بازه ي y=exp(x)نمودار تابع
MATLABدر رسم نمودار
Set, get توابع تواب��ع تنظيم جهت set,get از
اس���تفاده اش���ياء خصوص���يات
اولين setت��ابع ميگ��ردد. در
ش��ماره خ��ود ورودي آرگوم��ان
ش�يء م�ورد نظ�ر را دري�افت ك�رده
خ�ود ديگ�ر ه�اي ورودي در و
تنظيم را آنه�ا مق�ادير و خ�واص
مينمايد.
ت�ابع get ي�ا رش�ته مق�دار ع�ددي
ب�ر را ي�ك خاص�يت ب�ا متن�اظر اي
ميگرداند.
set(gca,'fontsize',12,…
'FontWeight','bold’);
fs=get(gca, 'fontsize’)
fs=
12
MATLABدر رسم نمودار
رسم همزمان چند منحني در يک نمودار
x=0:.1:1;
y=exp(x);
z=exp(-x);
plot(x,y,'-.r',x,z,'—gp’)
زمان در يك نمودار ميتوان طور هم جهت رسم چند منحني بههمچون مثال زير استفاده نمود. مثال plotاز تابع
MATLABدر رسم نمودار
معرفي چند تابع مهم :
:hold ازاين تابع جهت رسم چند منحني بر روي يك نمودار
استفاده ميشود.
:subplot از اين تابع جهت رسم چند نمودار در يك
figure.استفاده ميشود
:ginput اين تابع براي داده برداري دستي از نمودار استفاده
ميشود.
:grid.جهت شطرنج بندي نمودار از ان استفاده ميشود
:Semilogx,semilogyمحورهايx,y را به صورت لگاريتمي در
نظر ميگيرد.
:loglog.هر دو محور را به صورت لگاريتمي رسم ميكند
Linspace از اين تابع براي گرفتن تعداد معيني عدد در يك :
بازه ي معين استفاده مي شود.
MATLABدر رسم نمودار
x = linspace (0, 10, 100);y = 2*x.^2 + 7*x + 9;
%plotting the polynomial:
figure (1);
subplot (2,1,1), plot (x,y);
title ('Polynomial, linear/linear
scale');
ylabel ('y'), grid;
subplot (2,1,2), semilogx (x,y);
title ('Polynomial, log/linear
scale');
ylabel ('y'), grid;
MATLABدر رسم نمودار
ezplot متغ�ير ورودي خ�ود را ب�ه ص�ورت س�مبليك وي�ا رش�ته اي دري�افت مي نماي�د. در عب�ارت زي�ر نح�وه
بيان شده است. ezplotي كار تابع
و نحوه ي استفاده از آن ezplot تابع
h=ezplot(‘tan(x)’);
Handle = ezplot(‘function’)
MATLABدر رسم نمودار
H=ezplot('y-tan(x)',[0 3*pi/2 -2*pi 2*pi])
Handle=ezplot(‘function',[xmin xmax ymin ymax])
MATLABدر رسم نمودار
تنظيم خصوصيات منحني امك�ان دس�تيابي ب�ه منح�ني ي�ا دس�ته منح�ني ه�اي Hدر مث�ال قب�ل ع�دد
رس�م� ش�ده� را ف�راه�م مي آو�رد وب�ه كم�ك آن م�يت�وا�ن تغي�يرات الزم را �بر روي �منحني هاي رسم �شده اعمال� نمو�د.
set(H(1),'color','r','linestyle','--‘);
set(H(2),'linewidth',3,'linestyle','-.');
MATLABدر رسم نمودار
رسم سه بعدي
ب�راي ترس�يم منح�ني ه�اي س�ه MATLABتواب�ع زي�ادي در ت�ابع آنه�ا ك�اربردترين پ�ر ك�ه ميرون�د ك�ار ب�ه بع�دي
ezplot3,plot3 همانن�د تواب�ع ميش�وند.اين محس�وب عم�ل مي كنن�د ب�ا اين تف�اوت ك�ه ب�راي ezplot,plotتواب�ع
رسم منحني هاي سه بعدي پيش بيني شده اند.Handle = plot3(X1,Y1,z1,LineSpec,'PropertyName',PropertyValue);
Handle = ezplot3( ‘funcX’,’funcY’,’funcZ’ ,[tmin,tmax])
MATLABدر رسم نمودار
t = 0:pi/50:10*pi ;plot3(sin(3*t),cos(2*t),t)grid on
ezplot3('sin(t)','cos(t)','t',[0,6*pi] )
grid on
مثال
MATLABدر رسم نمودار
xminorgrid=onyminorgrid=onColor=[0.5 0.5 0]Fontsize=14position=[0 0 1 1]
متغير رشته اي را دريافت نموده 3تابعي تعريف نماييد كه بعدي تابع مربوطه رسم نماييد.3مودار ون
MATLABدر رسم نمودار
ezsurfc('y/(1 + x^2 + y^2)',[-5,5,-2*pi,2*pi]) ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40)
colormap([0 0 1])
MATLABدر رسم نمودار
MATLABويراست دستي نمودار د ر MATLABدر رسم نمودار
Edit Plot PanData cursor
Insert Legend
Show Plot Tools
Data Import and ExportData Import and
Export جدول زير فرمت فايل هايي كهmatlab ميتواند بخواند يا بنويسد را به هراه توابعي كه هر فرمت را پشتيباني ميكنند نشان ميدهد
Data Import and ExportData Import and
Exportما براي سادگي كار روند مرحله به مرحله (ويزارد) خواندن يك فايل
است را بررسي ميكنيم.DSC متني كه حاوي داده هاي دستگاه
Import text data file
Data Import and ExportData Import and
Export
پس از طي مراحل ويزارد داده هاي انتخاب
شده از فايل مورد نظر درون فضاي كاري
نرم افزار توليد شده و قابل دسترسي خواهند
بود.
روال گام به گام ذكر شده براي كليه فرمت •
از آن ها پشتيباني ميكند matlabهايي كه
قابل انجام است.
Import text data file
Data Import and ExportData Import and
Export
را import wizardپنج�ره
ت�ابع ب�ا uiimportميت�وان
ن�يز فراخ�واني نم�ود. در اين
ح�الت ت�ابع ي�ك خ�روجي دارد
ن�وع از و structك�ه ب�وده
داراي دو ش�اخه ب�ه ن�ام ه�اي
data, textdata.ميباشد
Import text data file
>> z=uiimport;
Import matlab file
تابعي بنويسيد كه به كاربر امكان انتخاب يك فايل متني را بوسيله پنجره
import wizard داده وسپس داده هاي ستون دوم وسوم را بر حسب ستون اول
DSC-CK45_Ferrite.txt متني با نامروي يك نمودار چاپ نمايد. اين تابع را بوسيله فايل
تست كنيد. ،desctop روي بر
است كه نه ورودي دارد و نه خروجي. importingنام تابع
Data Import and Export
Data Import and ExportData Import and
Export
Export matlab fileMATLAB ق�ادر اس�ت ت�ا نت�ايج فع�اليت ه�اي خ�ود را ب�ه ص�ورت
ه�اي مختل�ف ذخ�يره س�ازي نماي�د ك�ه اين ك�ار را ب�ه كم�ك تواب�ع
انج�ام ان�د تع�يين ش�ده ن�وع ف�رمت خ�اص ب�راي ه�ر خاص�ي ك�ه
ميدهد.
عمليJات مهمJترين جملJه در exportاز matlab ،
ذخJيره هذخJير متJني، فايJل ايجJاد طريJق بJه سJازي
بJا پسJوند هJاي مختلJف، ذخJيره سJازي سJازي تصJوير
افJزار نJرم فايJل بJه صJورت هJا ذخJيره excelداده ،
و ... ميباشد.avi.سازي تصاوير متحرك با پسوند
Data Import and ExportData Import and
Export
Export matlab file
MATLAB ق�ادر اس�ت ك�ه اطالع�ات موج�ود در فض�اي ك�اري خ�ود
mat.را ب�ه ص�ورت ف�ايلي ب�ا پس�وند مخص�وص ب�ه خ�ود ذخ�يره كن�د(
) تا بتوان در آينده از آن ها استفاده نمود.
save فايل“ از تابع ”متبراي ذخيره كردن اطالعات به شكل
,'save ('path', 'var1 استفاده ميشود.
'var2') ب�اال عب�ارت آرگوم�ان در ب�راي )path) اولين نظ�ر م�ورد مس�ير
ذخ�يره ك�ردن را تع�يين ك�رده و آرگوم�ان ه�اي ديگ�ر متغ�ير ه�ايي ك�ه
نياز است تا نگهداري شوند را تعيين مي كنند.
Data Import and ExportData Import and
Export
Export matlab file
save
('path')
ب�ه ش�كل مقاب�ل ب�ه ك�ار رود، saveدر اگ�ر ت�ابع
در ك�اري، فض�اي در موج�ود ه�اي متغ�ير كلي�ه
مسير مورد نظر نوشته ميشوند.
sav
e
ب�دون ارگوم�ان ورودي saveدر ح�التي ك�ه ت�ابع
ب�ه ك�ار رود كلي�ه متغ�ير ه�اي موج�ود در مس�ير
نوش�ته matlabج�اري ف�رض) پيش (مس�ير
ميشوند.
Data Import and ExportData Import and
Export
import matlab file
A=load
('path')
ب�ه ش�كل مقاب�ل ب�ه ك�ار رود، loadدر اگ�ر ت�ابع
ب�ا پس�وند pathكلي�ه متغ�ير ه�اي موج�ود در فاي�ل
mat داخل متغير ساختاري A.ميشود
Load
path
ب�ه ش�كل مقاب�ل ب�ه ك�ار loadدر ح�التي ك�ه ت�ابع
pathرود، كلي�ه متغ�ير ه�اي موج�ود در مس�ير
به همان صورت وارد محيط كاري ميشوند.
Data Import and ExportData Import and
Export
import file
A=load (‘filename‘,’format’)
Read data from text file;
fid=textread(‘d:\Mohsen\necessary informations.txt','%s')
'[email protected]' '--------------------------------' 'ETS' 'ID:3516769' 'user:moosavinezhad' 'pass:Smoosavi2919'
Curve Fitting
ه�ا در نموداره�ا يكي از مس�ائل مهم در عل�وم مهندس�ي و دروني�ابي داده
فيت نم�ودن ي�ك �رياض�ي�ا�ت محس�وب� ميگ�رد�د� ك�ه �در� اين �ج�ا �در م�ور�د� نح�وه�
ب�ر م�ن�حني �م�ورد� ن�ظر،� �بحث م�ي�شود.nي� ا�ي� درجه� م�ن�حني �چ�ندجم�ل�ه
Polynomial curve fitting
polyfitتابع
را دري�افت ك�رده y و ت�ابع ماتريس�ي xاين ت�ابع متغيرماتريس�ي
را ك�ه ب�ر منح�ني nاي از درج�ه وض�رايب ي�ك نم�ودار چندجمل�ه
p=polyfit(x,y,n) فيت هستند به ما تحويل ميدهد.x,yمتناظر با
Curve Fitting
polyvalتابع
Polynomial curve fitting
ي�ك نم�ودار چندجمل�ه ت�ابع ماتريس�ي ض�رايب ت�ابع و از اين اي
متن�اظر yرا دري�افت ك�رده و مق�ادير x و متغيرماتريس�يnدرج�ه
را بر ميگرداند.xبا ماتريس
ب�ه ك�ار م�يرود و polyfitاين ت�ابع معم�وال بالفاص�له بع�د از ت�ابع
p=polyval(p,x)شود. براي رسم داده هاي درونيابي شده استفاده مي
Curve Fitting
x=0:.1:1;
y=[1 2 4 5 6 7 9 13 14 15 18];
p=polyfit(x,y,3);
a=polyval(p,x);
plot(x,y,'r',x,a,'--b','linewidth',3);
مثال
p=[-2.7195 10.6061 8.8267 1.1678]
Fitted curve=-2.7x^3 + 10.6x^2 + 8.8x + 1.2
Polynomial curve fitting
.است فيت شده Y كه بر منحني 3اي درجه عبارتست از ضرايب چند جملهpدر اين جا ماتريس
Curve Fitting
Import matlab file
تابعي بنويسيد كه به كاربر امكان انتخاب يك فايل متني را بوسيله پنجره
import wizard داده وسپس داده هاي ستون دوم وسوم را بر حسب ستون اول
فيت نمايد1روي يك نمودار چاپ نمايد.عالوه بر اين بر منحني دوم يك نمودار درجه
و با رنگ سبز روي نمودار رسم نمايد.
)(10 xfy
Exponential curve fitting
از اكسپونانس�يلي ب�ه ص�ورت داده�ا دروني�ابي براي
اس�تفاده ميش�ود ب�ا اين تف�اوت ك�ه polyfitهم�ان ت�ابع
، لگاريتم آن وارد ميشود. yدراينجا به جاي ماتريس
ق�رار اس�ت طب�ق ت�ابعي yفرض كني�د ك�ه مق�ادير ت�ابع
لگاريتمي به شكل
درونيابي شود.آنگاه ميتوان نوشت:
)log()( yxf
logyدر نتيجه اگر عمل فيت كردن بر روي ماتريس بدس�ت مي آي�د و ميت�وان ب�ه f(x) ص�ورت گ�يرد ت�ابع
را هم بدست آورد.yكمك ان تابع
Curve Fitting
Curve Fitting
Polynomial curve fitting
مي باشد . y=exp(a*x^2 + b*x +c) اعداد زير مربوط به تابع
را بدست آوريد.a,b,cضرايب
Curve Fitting
Exponential curve fitting
x=0:.1:1;
y=[1 2 4 5 6 7 9 13 14 15 18];
p=polyfit(x,log10(y),3);
a=10.^polyval(p,x);
semilogy(x,y,'+r',x,a,'-b','linewidth',3);
answer = inputdlg(prompt)
پنجره هاي كنترليInputdlg
a=inputdlg('Please input your name')a = 'Mohsen'>> whos a Name Size Bytes Class a 1x1 72 cell
arrayGrand total is 7 elements using 72
bytes
answer = inputdlg(prompt,dlg_title,num_lines,defAns)
پنجره هاي كنترليInputdlg
>> answer = inputdlg('Please input your function',…
'Input Box',2,{'exp(x)'})answer = 'exp(x)'>> func=char(answer);>> whos answer func Name Size Bytes Class answer 1x1 72 cell array func 1x6 12 char arrayGrand total is 13 elements using 84 bytes
پنجJره اي كنJترلي ايحJاد كنيJد كJه تJابعي را از كJاربر
بگيرد.Prompt=‘Plaese input function name:’
Title=‘Input Function’
num_line=1
Def_ans=‘x^2’
رسم نمايد]100 0[ در بازه ezplot را به كمك اين پنجره و سپس به كمك تابع log10(x^3)تابع
پنجره هاي كنترلي
ورودي متغير يك از بيش توان مي چگونه بدانيم خواهيم مي . حال نمود دريافت كاربر از
پنجره هاي كنترليInputdlg
>> answer = inputdlg({'Input x','input y'},'Input Function',...
1,{'[1 2 3 4 5]','[2 4 6 8 10]'})answer = '[1 2 3 4 5]' '[2 4 6 8 10]'>> x=str2num(char(answer(1)));>> y=str2num(char(answer(2)));
. شود مي استفاده كاربر به ها پيغام و ها جواب نمايش براي پنجره اين از
پنجره هاي كنترليmsgbox
msgbox(message,title)
>> x=1:10;>> y=2:2:20;>> p=polyfit(x,y,1);>> message=strcat('Coefficient for linear fitting curve is:
[',num2str(p),']');>> msgbox(message,'Linear fitting data');
را x,yپنجJره اي كنJترلي ايحJاد كنيJد كJه مقJادير
به صورت عددي از كاربر دريافت كند.
ضJرايب msgboxسپس بJه كمJك پنجJره كنJترلي
را كJJه بJJر آن فيت ميشJJود بJJه 2معادلJJه درجJJه
كاربر نشان دهيد.Prompt= {'Input x','input y'}
Title=‘Input Function’
num_line=1
Def_ans ={'[1 2 3 4 5]','[2 4 6 8 10]'})
پنجره هاي كنترلي
اس�ت ك�ه در آن ب�ه محاس�بات ب�ه ص�ورت matlabرياص�يات س�مبليك بخش�ي از
س�مبولي�ك وب�ه كم�ك� نما�ده�ا ص�ور�ت م�ي گ�يرد. �جعب�ه اب�ز�ار ر�ياض�يات س�مبليك
محسو�ب ميشود.matlabمكمل� بخش �محاسبات ع�ددي
Symbolic mathIntroduction
جعب�ه اب�زار رياص�يات س�مبليك ن�وع جدي�دي از داده ه�ا ب�ه ن�ام اش�يا س�مبليك را تعري�ف
مي� ك�ن�د�. ي�ك �ش�ي�ي �س�مب�ولي�ك� ي�ك داده� �محس�وب �ميش�و�د ك�ه �ي�ك� ر�ش�ته� ر�ا �ب�ه� عن�وا�ن
ي�ك� ن�م�اد د�ر� خ�و�د� ذخ�ي�ره �م�يكن�د�.� ا�ين� �جع�ب�ه� اب�ز�ا�ر� ب�ه� كم�ك� اش�ي�ا س�م�بلي�ك� متغ�يره�ا،�
عب�ارات� و ماتريس ها�ي سمب�ليك را ن�مايش مي�دهد.�
Symbolic mathIntroduction
چگونه ميتوان يك متغير سمبليك تعريف كرد؟
ميتوان متغيرهاي سمبليك تعريف sym , syms به كمك توابع نمود.
يك رشته را به عنوان ورودي دريافت كرده و يك خروجي از symتابع
به symsنوع سمبليك به ما ميدهد. براي سادگي ميتوان از عبارت
استفاده نمود.symجاي
Symbolic mathIntroduction
a=sym('alpha')
a =alpha
b=a^2
b=
alpha^2
a = sqrt(sym(2^2));b=2;whos a b Name Size Bytes Class a 1x1 126 sym
object b 1x1 8 double
arrayGrand total is 2 elements using 126 bytes
subsتابع
اين امك�ان را ب�ه م�ا ميده�د ت�ا در ي�ك عب�ارت ب�ه ج�اي مق�دار س�مبليك subsتابع
يك عدد را جايگزين كنيم.
Introduction
syms x y
z=y*sin(x);
z1=subs(z,x,pi/2)
z1=
y
syms a b
f=subs(cos(a)+sin(b),{a,b},
{sym('alpha'),pi})
f=
cos(alpha)
Symbolic math
مقJJادير z=atan(x*y)-exp(y)تابع ازاي بJJه را
x=1,y=2.بدست آوريد
رسJم x=1:10;y=1:10منحJني اين تJابع را بJه ازاي
كنيد.
Symbolic math
Symbolic Math functions
Symbolic Math
The Symbolic Math Toolbox provides functions to do the
basic operations of calculus. The following sections
describe these functions
Calculus
Differentiation Limits Integration Symbolic Summation Taylor SeriesJacobian
Symbolic Math functions
Symbolic Math
Differentiation
Calculus
ExamplesAssume syms x tThen diff(sin(x^2))returns 2*cos(x^2)*xand diff(t^6,6)returns 720
Symbolic Math functions
Symbolic Math Calcul
us
limit ExamplesAssume syms x a t h;Then limit(sin(x)/x) => 1limit(1/x,x,0,'right') => inflimit(1/x,x,0,'left') => -inflimit((sin(x+h)-sin(x))/h,h,0) => cos(x)v = [(1 + a/x)^x, exp(-x)];limit(v,x,inf,'left') => [exp(a), 0]
Symbolic Math functions
Symbolic Math Calcul
usintegration
Examplesint(-2*x/(1+x^2)^2) returns 1/(1+x^2)int(x/(1+z^2),z) returns x*atan(z)int(x*log(1+x),0,1) returns 1/4int(2*x, sin(t), 1) returns 1-sin(t)^2int([exp(t),exp(alpha*t)]) returns [exp(t), 1/alpha*exp(alpha*t)]
Symbolic Math functions
Symbolic Math
f = x^3-6*x^2+11*x-6g = (x-1)*(x-2)*(x-3)
h = -6+(11+(-6+x)*x)*xpretty(f), pretty(g),
pretty(h)x3 - 6 x2 + 11 x - 6(x - 1) (x - 2) (x - 3)
-6 + (11 + (-6 + x) x) x
Simplifications
Substitutions
Symbolic Math functions
Symbolic Math
collect
Collect coefficients R = collect(S,v)
For each polynomial in the array S of polynomials, collect(S) collects terms containing the variable v (or x, if v is not specified). The result is an array containing the collected polynomials.
Simplifications
Substitutions
Symbolic Math functions
Symbolic Math
factor Factorization factor(X)
factor can take a positive integer, an array of symbolic expressions, or an array of symbolic integers as an argument. If N is a positive integer, factor(N) returns the prime factorization of N
Simplifications
Substitutions
Symbolic Math functions
Symbolic Math
simplify Symbolic simplification R = simplify(S)
simplify(S) simplifies each element of the symbolic matrix S using Maple simplification rules
Simplifications
Substitutions
Symbolic Math functions
Symbolic Math Solution of
Equations
dsolve
Symbolic solution of ordinary differential equations
r = dsolve('eq1,eq2,...', 'cond1,cond2,...', 'v')
Description
symbolically solves the ordinary differential equation(s) specifiedby eq1, eq2,... using v as the independent variable and the boundary and/or initial condition(s) specified by cond1,cond2,....
Symbolic Math functions
Symbolic Math
Examples
dsolve('Df = f + sin(t)') returns -1/2*cos(t)-1/2*sin(t)+exp(t)*C1
y = dsolve('(Dy)^2 + y^2 = 1','y(0) = 0') returns y = sin(t) -sin(t)
Solution of Equations
Symbolic Math functions
Symbolic Math Solution of
Equations
solve Symbolic solution of algebraic equations
g = solve(eq)g = solve(eq,var)g = solve(eq1,eq2,...,eqn)g = solve(eq1,eq2,...,eqn,var1,var2,...,varn
Symbolic Math functions
Symbolic Math Solution of
Equations
Examples
solve('a*x^2 + b*x + c') returns [ 1/2/a*(-b+(b^2-4*a*c)^(1/2)), 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
solve('a*x^2 + b*x + c','b') returns -(a*x^2+c)/x
S = solve('x + y = 1','x - 11*y = 5') returns a structure S with S.y = -1/3, S.x = 4/3
Symbolic Math functions
Symbolic Math Solution of
Equations
solve Symbolic solution of algebraic equations
g = solve(eq)g = solve(eq,var)g = solve(eq1,eq2,...,eqn)g = solve(eq1,eq2,...,eqn,var1,var2,...,varn)
و بJازه fx,gxتابعي بنويسJيد كJه دوتJابع بJا نJام هJاي
f(gx), g(fx)رسJم آن هJا را دريJافت كJرده وسJپس
بJJازه fx/gx,fx*gxو آن در بJJه كمJJك تJJابع را
subplot دريك figure .رسم نمايد
Symbolic math