SlideShare a Scribd company logo
MATLAB`s
 Introductions

          By

S.Mohsen Moosavi Nezhad
What is MATLAB?
Matlab is a commercial

"Matr ix L abor ator y"
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
MATLAB Parts
•   Developed Environment
•   Programming Language
•   Graphics
•   Toolboxes
•   Application Program
    Interface
Installation Guide
Step 1: Start the Installer   I nstall ati on
                                 G uide
Installation Guide
Step 2: Enter Identification and License Information   I nstall ati on
                                                          G uide
Installation Guide
Step 3: Review the Software Licensing Agreement   I nstall ati on
                                                     G uide
Installation Guide
Step 4: Choose Installation Type   I nstall ati on
                                      G uide
Installation Guide
Step 5: Specify Installation Folder and Products   I nstall ati on
                                                      G uide
Installation Guide
Step 6: Specify Installation Options (Custom Only)   I nstall ati on
                                                        G uide
Installation Guide
Step 7: Confirm Your Choices   I nstall ati on
                                  G uide
Installation Guide
Step 8: Read Product Configuration Notes   I nstall ati on
                                              G uide
Installation Guide
Step 9: Complete the Installation   I nstall ati on
                                       G uide
Display Windows
Show help
Matlab present
Matlab present
Matlab present
Matlab present
Application of MATLAB
           in Engineering
•   Image Processing •    Data Acquisition
•   Image Acquisition •   Partial Differential
                          Equations
•   Signal processing
                      •   Curve Fitting
•   Simulinc
                      •   Symbolic Mathematics
•   wavelet
                      •   Plotting
Application of MATLAB
    in Material Engineering
•       Image Processing

    –    Phase Fraction
    –    Grain Size
    –    Nodular Grafit
    –    Coating Thickness
    –    Inclusions
    –    Edit Image
‫‪Phase Fraction‬‬




‫فولد ساختماني‬
       ‫54‪CK‬‬
                         ‫درصد كربن 75 *‬
                          ‫800.0=64.0‬
Grain Size




‫آلومينيوم‬


                         G=7
‫‪Nodular Grafit‬‬




       ‫2‬‫0‬

       ‫1‬‫0‬
        ‫0‬
              ‫1‬
          ‫درصد كرويت گرافيتهاي كروي.‬
‫رنگ آبي تعداد ذرات با كرويت بيش از 08درصد و رنگ‬
‫قرمز تعداد ذرات با كرويت كمتر از 56 درصد را نشان‬
                    ‫ميدهند.‬
Coating Thickness
‫‪Image Acquisition‬‬




‫به عنوان مثال : اتصال به ميكروسكپ و دريافت‬
       ‫تصاوير از ريزساختار مورد نظر‬
‫‪Data‬‬             ‫‪Acquisition‬‬




‫به عنوان مثال : اتصال به ترموكوپل و دريافت داده ها‬
Curve Fitting & Plotting




     Effect of temperature on the reduction kinetics of
      uncatalyzed concentrate:graphite:lime mixture.
‫‪Partial Differential Equations‬‬

      ‫‪magnetic flux density‬‬


                                ‫مثا لي از ا ثر پوسته اي،‬
                                 ‫زمان ي كه جريان‬
                                  ‫يك‬    ‫از‬    ‫متناوب‬
                                 ‫اس توانه ي طويل‬
                                ‫م سي با سطح مقطع‬
                                 ‫دايروي، عبور مي‬
                                 ‫كن د مورد بررسي‬
                                      ‫قرار مي گيرد.‬


                                  ‫رسانايي ويژه ي مس‬
                                            ‫001 %‬
                              ‫ضريب تروايي نسبت به خل‬
                                                ‫1‬
                                              ‫فركانس‬
                                          ‫05 هرتز‬
Toolboxes

Col l ecti ons of functi ons to sol ve
 pr oblems of sever al appli cati ons.
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:                           NOTE: when a semi-colon ”;” is
               >> tutorial = 1234;   placed at the end of each
               >> tutorial = 1234    command, the result is not
               tutorial =            displayed.
                     1234
MATLAB BASICS
Initializing 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             1 1
     >> f = [1:4]′;               h=
                                       2 2
     >> g = 1:4;                       3 3
                                       4 4
     >> h = [ g′ g′ ];
‫كار در كلس‬
‫‪M A T L A B B A SI CS‬‬



‫ماتريس زير را به كمك عبارت ‪ first: increment: last‬و به وسيله تركيب‬
                                               ‫ماتريس ها توليد كنيد‬
      ‫8 7 6 5‬
      ‫51 11 7 3‬
      ‫2- 1- 0 1‬
M A T L A B B A SI CS


A=[5:8           A=[ 5:8 ; 3:4:18 ; 1:-1:-2]
3:4:18      or   A=
1:-1:-2];
                    5    6    7  8
                    3    7   11 15
                    1    0   -1 -2
MATLAB BASICS
Changing the data format
  >> value = 12.345678901234567;
    format short → 12.3457
    format long → 12.34567890123457
    format short e → 1.2346e+001
    format long e → 1.234567890123457e+001
    format short g → 12.346
    format long g → 12.3456789012346
    format rat → 1000/81
Calculations at the
    Command Line
MATLAB as a calculator     Assigning Variables
 » -5/(4.8+5.32)^2
                            » a = 2;              Semicolon
 ans =
                            » b = 5;              suppresses
    -0.0488
                                                  screen output
 » (3+4i)*(3-4i)            » a^b
 ans =                      ans =                 Results
     25                           32              assigned to
 » cos(pi/2)                » x = 5/2*pi;         “ans” if name
 ans =                                            not specified
   6.1230e-017              » y = sin(x)
 » exp(acos(1))             y =
 ans =                             1
     1                      » z = asin(y)         () parentheses for
                            z =                   function inputs
                                  1.5708

A Note about Workspace:
Numbers stored in double-precision floating point format
The Matrix in MATLAB
Rectangular Matrix:
Scalar: 1-by-1 array
Vector: m-by-1 array
        1-by-n array               Columns
Matrix: m-by-n array                  (n)
                        1        2     3   4                  5
            A=          4
                            1
                                10
                                      6
                                           1
                                                11
                                                     6
                                                         16
                                                              2
                                                                   21
                                                                        A (2,4)
                   1
                            2         7         12       17        22
                   2    8       1.2        9         4        25

        Rows (m) 3     7.2 3     5    8
                                           7    13
                                                     1   18
                                                              11 23     A (17)
                   4    0   4
                                0.5 9      4    14
                                                     5   19
                                                              56 24
                            5         10        15       20        25
                   5   23       83         13        0        10
Entering Numeric Arrays
                 » a=[1 2;3 4]
                 a =                                Use square
                        1        2                  brackets [ ]
                        3        4
Row separator    » b=[-2.8, sqrt(-7), (3+5+6)*3/4]
semicolon (;)    b =
                       -2.8000       0 + 2.6458i     10.5000
Column separator » b(2,5) = 23
space / comma (,)
                 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
Array Subscripting /Indexing

                      1        2        3         4         5
       A=         4
                      1
                          10
                               6
                                    1
                                         11
                                              6
                                                  16
                                                       2
                                                            21

             1
                      2
             2    8       1.2 7     9 12      4   17
                                                       25 22
                                                                 A(1:5,5) A(1:end,end)
             3   7.2 3     5   8
                                    7 13      1   18
                                                       11 23     A(:,5)   A(:,end)
                                                                 A(21:25) A(21:end)’
    A(3,1)   4    0   4
                          0.5 9     4 14      5   19
                                                       56 24
    A(3)              5        10        15       20        25
             5   23       83        13        0        10
                                                                   A(4:5,2:3)
                                                                   A([9 14;10 15])
Colon 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]
Colon 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]

       1      2   5
      − 1         1
               0                   − 1 0  1
    C=                         E=        
       3      2 − 1               3 2 − 1
                   
       0      1   4
Colon 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]

        1       2   5
       − 1           
                 0   1              3 2
     C=                           G=   
        3       2 − 1              0 1
                     
        0       1   4
Matrix Multiplication
    » a = [1 2 3 4; 5 6 7 8];                        [2x4]
    » b = ones(4,3);                                 [4x3]
    » c = a*b                    [2x4]*[4x3]         [2x3]
    c =
          10   10   10
          26   26   26          a(2nd row).b(3rd column)


Array Multiplication
   » 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)
Multidimensional Arrays
The first references array dimension 1, the
row.
                                                         » A = pascal(4);
The second references dimension 2, the                   » A(:,:,2) = magic(4)
column.                                                  A(:,:,1) =
The third references dimension 3, The                         1     1     1     1
page.                                                         1     2     3     4
                                        1    0   0   0        1     3     6    10
                                        0    1   0   0
                                                              1     4    10    20
                                        0    0   1   0
                                        0    0   0   1   A(:,:,2) =
                                                             16     2     3    13
                       0    0   0   0       Page N
                                                              5    11    10     8
            16       20 30 130      0
                   110 1 0 80       0                         9     7     6    12
        1   15     1    10
                       0 60 120     0
        1   2
              9
                   3
                     7
                        4                                     4    14    15     1
        1   3
              4    14 15
                   6 10
                             1                           » A(:,:,9) = diag([1 1 1
        1   4     10   20                                  1]);
                  Page 1
Multidimensional Arrays
A(2,1,2)        » A = pascal(4);
                » A(:,:,2) = magic(4)
A(3:4,2:3,1)    A(:,:,1) =
b=A(3,4,5)           1     1     1       1
                     1     2     3       4
b=                   1     3     6      10
0                    1     4    10      20
c=A(3,3,9)      A(:,:,2) =
                    16     2     3      13
c=                   5    11    10       8
1                    9     7     6      12
                     4    14    15       1
                » A(:,:,9) =
                  diag(ones(1,4));
‫كار در كلس‬
‫‪M A T L A B B A SI CS‬‬


‫ماتريس زير را به ساده ترين و کوتاه ترين شکل ممکن تعريف کنيد.‬


     ‫1‬       ‫2‬    ‫3‬   ‫4‬   ‫0‬   ‫0‬   ‫0‬   ‫0‬   ‫1‬        ‫2‬    ‫3‬   ‫4‬
     ‫1‬       ‫3‬    ‫5‬       ‫0‬   ‫0‬   ‫0‬   ‫0‬    ‫1‬       ‫3‬    ‫5‬
         ‫7‬                ‫0‬   ‫0‬   ‫0‬   ‫0‬        ‫7‬
     ‫1‬       ‫1‬    ‫1‬       ‫0‬   ‫0‬   ‫0‬   ‫0‬    ‫1‬       ‫1‬    ‫1‬
         ‫1‬                                     ‫1‬
     ‫5‬        ‫4‬       ‫3‬                    ‫5‬        ‫4‬       ‫3‬
             ‫2‬                                     ‫2‬
M A T L A B B A SI CS

                           1   2    3    4
A(1,:,1)=1:4;              1   3    5    7
                           1   1    1   1
A(2,:,1)=1:2:7;            5
                               2
                                4        3


A(3,:,1)=1;
                           0    0   0       0
                           0   0    0       0

A(4,:,1)=5:-1:2;
                           0   0    0       0
                           0   0    0       0

A(:,:,3)=A(:,:,1)          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 >> zeros(2,2,4)
                                                    a=[ 1 2 ;
                                                    diag(4,2)3 4];
                                                    ones([2,2,4])

   •                                             >> fliplr(a)
                                                 ans =
       ones: Create an array of all ones ans(:,:,1)0= 4
                                                 ans0 =
   •   eye: Identity Matrix            >> zz=ones([2,2,4]); 0
                                                     2
                                                     1
                                                     0 1   1
                                                           0
                                       >> a=size(zz);
   •   rand: Uniformly distributed random numbers 0
                                 >> eye(5,7)
                                                     4
                                                     1
                                                     0 1   3
                                                           0
                                                 ans(:,:,2) =
   •   diag: Diagonal matrices and diagonal of a 10
                                 ans =
                                                     0 matrix
                                                     1
                                     1   0    0    0     0    0  0
   •   size: Return array dimensions 1 0 0 0 0 0
                                     0
                                                     1
                                                     0 1   0
                                                 ans(:,:,3) =
   •   fliplr: Flip matrices left-right 0 1 0 0 0 10 0 0
                                     0
                                                     1
   •   flipud: Flip matrices up and down0 1 0 0 10 0 0
                                     0
                                     0
                                          0
                                          0   0    0
                                                     1
                                                         1 0     0
   •   repmat: Replicate and tile a matrix       ans(:,:,4) =
                                                     1
                                                     0   1
                                                         0
                                                     1
                                                     0   1
                                                         0
Matrix Manipulation Functions
 •   transpose (’): Transpose matrix
 •   rot90: rotate matrix 90
 •   tril: Lower triangular part of a matrix
 •   triu: Upper triangular part of a matrix
 •   cross: Vector cross product
 •   dot: Vector dot product
 •   det: Matrix determinant
 •   inv: Matrix inverse
 •   eig: Evaluate eigenvalues and eigenvectors
 •   rank: Rank of matrix
M A T L A B B A SI CS
                                sum ‫تابع‬

.‫حاصل جمع مولفه هاي يك ماتريس را محاسبه كرده و برميگرداند‬
      B = sum(A); returns sums along different dimensions of an array.

       B = sum(A,dim) sums along the dimension of A specified by
       scalar dim

      >> a=[1 2 3 ; 7 5 10]          >> a(:,:,2)=2;      >> sum(a,2)
       >> sum(a)                     >> sum(a,1)         ans(:,:,1) =
                                                             6
       ans =                         ans(:,:,1) =
                                                            22
           8   7   13                   8     7 13

                                                         ans(:,:,2) =
                                     ans(:,:,2) =
                                                            6
                                        4     4   4
                                                            6
M A T L A B B A SI CS
                                    diff ‫تابع‬

.‫حاصل تفريق مولفه هاي يك ماتريس را محاسبه كرده و برميگرداند‬
      Y = diff(X); calculates differences between adjacent elements of X.


                         [X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)]

       >> a=[1 3 5;7 10 15];
                                       >> z
       >> a(:,:,2)=[1:3;4:2:8];
                                       z(:,:,1) =
       >> z=diff(a,1);
                                           6    7   10

                                       z(:,:,2) =

                                           3    4   5
M A T L A B B A SI CS
                               diff ‫تابع‬

Y = diff(X,n) applies diff recursively n times, resulting in the
nth difference.

Y = diff(X,n,dim) is the nth difference function calculated along
the dimension specified by scalar dim.
 z=diff(a,2);     >> z                >> z=diff(a,2,2)
                                      z(:,:,1) =
                  z(:,:,1) =
                                          0
                      1    3              2
                                      z(:,:,2) =
                  z(:,:,2) =
                                          0
                      1    1              0
‫كار در كلس‬
‫‪M A T L A B B A SI CS‬‬

    ‫انتگرال عددي تابع ‪ (sin(x‬را در بازه ]0 2/‪ ،[pi‬به كمك توابع‬
                   ‫‪ diff‬و ‪ sum‬محاسبه كنيد.‬
‫جهت بدست آوردن نتايج صحيح از عملگر : با گام 100.0 استفاده كنيد.‬
M A T L A B B A SI CS

x=0 : 0.001 : pi/2;
y=sin(x);
Integ=sum(y(1:end-1).*diff(x))
Integ=
0.9987
Derivatives=diff(y)./diff(x);
Data Types
Numeric-Integer
Character Arrays (Strings)
 •   Created using single quote delimiter (')
      » str     = ‘M Moosavi'
      str =
      M Moosavi
      » str2 = 'Isn''t MATLAB great?'
      str2 =
      Isn't MATLAB great?

 •   Each character is a separate matrix element
                (18 bits of memory per character)

        str =   M       M   o   o   s    a   v      i   1x9 vector

 •   Indexing same as for numeric arrays
String Array
         Concatenation
Using [ ] operator:   » str ='Hi there,';
                                             1x9 vectors
Each row must be      » str1='Everyone!';
same length           » new_str=[str, ' ', str1]
                      new_str =
Row separator:
                      Hi there, Everyone!        1x19 vector
semicolon (;)
                      » str2 = 'Isn''t MATLAB great?';

Column separator:     » new_str2=[new_str; str2]
space / comma (,)     new_str2 =
                      Hi there, Everyone!
                      Isn't MATLAB great?
                                                 2x19 matrix

For strings of different length:
• STRVCAT             » new_str3 = strvcat(str, str2)
• char                new_str3 =
                      Hi there,                  2x19 matrix
                      Isn't MATLAB great?        (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
Working with String Arrays
                       a='alireza';          a='alireza';
a=strcmp ('('Yes', 'No
                       b='ali';              b=‘reza';
a=
                       comp=strncmp(a,b,3)   comp=findstr(a,b)
 0
b=strcmp('Yes', 'Yes') comp =                comp =
b=                        1                     4
  1                    comp=strncmp(a,b,4)   comp=findtr(a,'ah')
                       comp =                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];



       •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];
Cell Arrays
Array for which the elements are cells and can
.hold other MATLAB arrays of different types
 •Using braces {} to point to elements of cell array
 •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};
Loop Controls

                                           ‫مثال‬
   if-end ‫حلقه‬          score=[18 17 12 20]
   if expression1       i=2;
      statements1       if score(i)>18
   elseif expression2          grade=‘A’
      statements2       elseif score(i)>16
   else                        grade=‘B’
      statements3       elseif score(i)>14
   end                         grade=‘C’
                        else
                               grade=‘D’
                        end
‫‪Loop Controls‬‬
                                               ‫حلقه هاي كنترلي :‬
 ‫در نوش تن توا بع ب سيار پ يش مي آ يد كه نياز به انجام مكرر يك سري‬
 ‫از دستورات ميباشد در اين گونه موارد از حلقه هاي كنترلي استفاده‬
        ‫مي شود. در اين جا به معرفي چند حلقه كنترلي مي پردازيم.‬

   ‫حلقه ‪for-end‬‬                                                ‫مثال‬
                                             ‫;5:2:1=‪for a‬‬
  ‫‪for index = start : increment : end‬‬
                                             ‫;0=‪x‬‬
    ‫‪statements‬‬
                                              ‫5:1 = ‪for j‬‬
  ‫‪end‬‬
                                                   ‫;)‪x=x+a(j‬‬
                                              ‫‪end‬‬
                                             ‫‪end‬‬
F uncti ons
    in
M A TL A B
‫‪F unctions in MA TL A B‬‬

‫تاب ع ب ه مجموع ه اي از دس تورات گفت ه م ي شود كه‬
‫فرايندي خاص را بر روي داده هاي ورودي انجام داده و‬
                   ‫خروجي را به ‪ matlab‬مي فرستد.‬




      ‫‪workspace‬‬    ‫‪input output‬‬    ‫‪function‬‬
‫‪F unctions in MA TL A B‬‬

                   ‫هر تابع با كلمه كليدي ‪ function‬آغاز ميشود.‬      ‫•‬

‫توا بع براي اين كه قا بل فراخوا ني باش ند باي ستي در م سير معيني‬   ‫•‬

                                                   ‫ذخيره شوند.‬

              ‫فراخواني يك تابع از طريق نام آن صورت ميگيرد.‬         ‫•‬

       ‫يك تابع ميتواند در بدنه خود ديگر توابع را فراخواني كند.‬     ‫•‬

                     ‫هر تابع ميتواند خود محتوي چند تابع باشد.‬      ‫•‬

‫توا بع فا يل هاي مت ني مح سوب ميشو ند كه با پسوند .‪ m‬ذخيره‬         ‫•‬

                                                     ‫مي گردند.‬
‫‪F unctions in MA TL A B‬‬

       ‫هر تابع ميتواند شامل چند متغير ورودي و يا خروجي باشد.‬      ‫•‬

  ‫متغ ير هايي كه در بدنه تابع تعريف و يا ايجاد ميشوند در صورتي‬    ‫•‬

  ‫كه جزء متغيرهاي خروجي نباش ند در فضاي كاري قابل شناسايي‬

                                                    ‫نيستند.‬
                                      ‫تابع به صورت ذيل تعريف مي‬

                                                           ‫شود.‬
‫,1‪function [out1, out2, ...] = funname(in‬‬
  ‫متغير هاي 2‪ … ,in1,in‬متغيرهاي ورودي ومتغيرهاي 2‪…,out1,out‬‬
‫)... ,2‪in‬‬
                                       ‫متغيرهاي خروجي ميباشند.‬
‫‪F unctions in MA TL A B‬‬
             ‫براي اين كه بتوان در ‪ matlab‬تابع‬
              ‫نوش ت كاف ي است از منوي‬
             ‫‪ file‬گزي نه ‪ new‬و سپس گزينه‬
             ‫‪ mfile‬را انتخاب نمود. در اين‬
               ‫صورت ص فحه سفيدي باز‬
             ‫ميشود كه امكان نوش تن تابع‬
                       ‫را فراهم مي آورد.‬
‫‪F unctions in MA TL A B‬‬
    ‫پس از اين كه تا بع به طور كا مل نوش ته شد بايد ان‬

                                     ‫را ‪ save‬كرد.‬
F unctions in MA TL A B
Loop Controls

   switch-case-end ‫عبارت‬                                             ‫مثال‬
                                       method = 'Bilinear';
  switch switch_expr
                                       switch lower(method)
   case case_expr
                                        case {'linear','bilinear'}
    statement, ..., statement
   case {case_expr1, case_expr2,...}         disp('Method is linear')

    statement, ..., statement           case 'cubic'

   otherwise                                 disp('Method is cubic')
    statement, ..., statement           otherwise
  end                                        disp('Unknown method.')
                                       end
F unctions in MA TL A B
                                                            :‫مثال‬
   ‫مي خواهيم تابعي بنويسيم كه يك عدد را دريافت كرده وسپس‬
                .‫ محاسبه كند‬for ‫فاكتوريل آن را به كمك حلقه‬
 function n = factorial (k)
 % 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;
   end
 end
F unctions in MA TL A B
        ‫ نتا يج به صورت ز ير قابل‬matlab ‫پس از اجراي تا بع در‬
                                            .‫مشاهده است‬
>> a=factorial(5)

a=

  120

>> a=factorial(-1)

a=

Error, negative argument
‫كار در كلس‬
‫‪F unctions in MA TL A B‬‬
‫1. اگر قرار باشد يك تابع مشتق وانتگرال يك رشته‬
‫را تعيينن نمايند بايند داراي چنند متغير ورودي و‬
‫خروجني باشد . در صنورت امكان اينن تابع را‬
 ‫نوشت نه و بوس نيله آ نن مشت نق وانتگرال تابع‬
                ‫ن‬      ‫ن‬      ‫ن‬        ‫ن‬
                      ‫2^‪ (exp(x‬را محاسبه كنيد‬


‫3. تاب عي بنوي سيد كه يك ماتر يس برداري را دريافت‬
‫كرده و داده هاي آنرا از بزرگ به كو چك رديف‬
                   ‫نموده و در خروجي بفرستد.‬
F unctions in MA TL A B


      function [dif integ] = difint (func)
      if isstr(func)~=1
        disp(‘please input a string function’)
        return
      end
      dif=diff(func);
      integ=int(func);
‫‪F unctions in MA TL A B‬‬
       ‫توابع ‪varargin , varargout , nargin , nargout‬‬


‫گا هي اوقات پ يش مي آ يد كه تعداد متغ ير هاي ورودي و يا خرو جي يك‬
‫تا بع واب سته به عملكرد تا بع تغي ير ميك ند در نتي جه هنگام تعر يف تابع‬
‫دچار مش كل ميشويم . به عنوان مثال تا بع ‪ plot‬ميتوا ند داراي يك متغير‬
‫ورودي با شد و يا اين كه واب سته به نوع نمودار و نحوه تر سيم به طور‬
‫نامحدود متغ ير ورودي داش ته باشد. همچن ين ا ين تا بع ميتوا ند داراي يك‬
‫متغ ير خرو جي با شد يا ا صل متغ ير خرو جي نداش ته باشد. در ا ين مواقع‬
‫به عنوان متغينر ورودي وينا خروجي‬       ‫از توابنع ‪varargin , varargout‬‬
                                                     ‫استفاده مي شود.‬
‫‪F unctions in MA TL A B‬‬
       ‫توابع ‪varargin , varargout , nargin , nargout‬‬


‫متغينر ‪ varargin‬به عنوان ورودي تابنع عمنل كرده و كليه متغيرهاي‬
‫ورودي را در خود قرار ميدهد. ا ين متغ ير براي هر تابع حاوي ورودي‬
‫هاي همان تا بع ا ست. نوع آن سلولي و طول آن برابر با تعداد ورودي‬
                                                  ‫هاي تابع ميباشد.‬
‫متغينر ‪ varargout‬به عنوان خروجني تابنع عمنل كرده و حاوي كليه‬
‫تابنع اسنت. نوع آنن سنلولي و طول آنن برابر با‬   ‫متغيرهايني خروجني‬
                                   ‫تعداد خروجي هاي تابع ميباشد.‬
‫متغ ير ‪ nargin , nargout‬به ترت يب محتوي تعداد متغيرهاي خروجي و‬
            ‫ورودي هستند. طول آنها برابر يك و نوع آنها عددي است.‬
Functions in MATLAB
       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.
‫رسم نمودار‬
    ‫در‬
‫‪MATLAB‬‬
‫رسم نمودار در ‪MATLAB‬‬

‫رسم نمودار يكي از قابليت هاي مهم‪ MATLAB‬محسوب‬
  ‫مي گردد. توابع رسم نمودار در ‪ MATLAB‬به دو‬
                         ‫دسته تقسيم ميشوند:‬

                              ‫توابع ماتريسي‬    ‫•‬

                                ‫توابع سمبليك‬   ‫•‬
‫رسم نمودار در ‪MATLAB‬‬
                                       ‫توابع‬
‫توابعي كه با ماتريس ها كار ميكنند و متغير ورودي‬
                                   ‫ماتريسي‬
                          ‫آنها ماتريس ها هستند .‬


 ‫تعدادي از توابع ماتريسي ‪ MATLAB‬عبارتند از:‬
   ‫‪plot3,plot, bar,bar3,pie,pie3,contour‬‬
‫رسم نمودار در ‪MATLAB‬‬

                                      ‫توابع‬
‫توابعي كه متغيرهاي ورودي آنها به صورت سمبوليك‬
                                 ‫سمبوليك‬
                          ‫يا رشته اي مي باشند.‬

   ‫تعدادي از توابع سمبليك ‪ MATLAB‬عبارتند از:‬
          ‫‪. ezplot,ezcontour ,ezsurf‬‬
MATLAB ‫رسم نمودار در‬
 bar-bar3h-hist-area-pie3-rose
MATLAB ‫رسم نمودار در‬
contourf-colorbar-plot3-waterfall-contour3-mesh-surf
‫رسم نمودار در ‪MATLAB‬‬
                                 ‫رسم دو‬
                                  ‫بعدي‬
                               ‫تابع ‪Plot‬‬

‫رسم نمودار هاي دوبعدي محسوب مي شود‬
‫و امكانات زيادي را براي ويرايش تصوير در‬
                ‫خروجي فراهم مي آورد.‬
‫رسم نمودار در ‪MATLAB‬‬
                     ‫نحوه ي استفاده از تابع ‪plot‬‬
‫‪;(Handle = plot(X1,Y1,LineSpec,'PropertyName',PropertyValue‬‬

         ‫در عبارت بال ، 1‪ X1,Y‬ماتري س هاي برداري هم اندازه‬
        ‫هستند كه قرار است به صورت يك به يك بر روي محورهاي‬
                                                    ‫‪ X,Y‬رسم شوند.‬
         ‫متغي ر ‪ LineSpec‬يك رشت ه اس ت ك ه درآن ميتوان‬
        ‫خص وصيات رن گ خ ط، نوع مارك ر )به عنوان مثال مارك ر م ي-‬
        ‫توان د ب ه ص ورت مرب ع وي ا س تاره باش د( و نوع خط)- ،‬
                                           ‫-- ، : ، .-(، را تعيين نمود.‬
        ‫‪ PropertyName‬شامل تمامي خواص شيئ ’‪ ‘ Line‬مي‬
         ‫گردد ك ه قرار اس ت ت ا ب ا مقادي ر عددي ي ا رشته اي‬
MATLAB ‫رسم نمودار در‬
x = -pi:pi/10:pi;
                                    ‫مثال‬
y=sin(x);
h=plot(x,y, '-.r','linewidth',3);
MATLAB ‫رسم نمودار در‬

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 ‫رسم نمودار در‬

.‫( را در بازه ي ]-01 01[ با دقت 1.0 رسم نماييد‬y=exp(x ‫نمودار تابع‬
          Linewidth=2
          Color=red
          ‘ Title=‘(y= exponential(x
          ‘ Xlabel=‘x
          ‘ Ylabel=‘(exp(x
          ‘*’ =Marker type
MATLAB ‫رسم نمودار در‬


>> x=-10:.1:10;
>> y=exp(x);
>> a=plot(x,y,‘pr','linewidth',2)
>> Title('y= exponential(x)')
>> Ylabel('exp(x)')
>> Xlabel('x')
‫رسم نمودار در ‪MATLAB‬‬
                          ‫جه ت تنظيم‬   ‫از تواب‪Set, get‬‬
                                        ‫توابع ع ‪set,get‬‬

‫…,21,'‪set(gca,'fontsize‬‬
                          ‫خص وصيات اشياء استفاده ميگردد.‬
                          ‫تاب ع ‪ set‬در اولين آرگومان ورودي‬
‫;)’‪'FontWeight','bold‬‬
                          ‫خود شماره شي ء مورد نظر را‬
‫)’‪fs=get(gca, 'fontsize‬‬
                          ‫دريافت كرده و در ورودي هاي ديگر‬
‫=‪fs‬‬
                          ‫خود خواص و مقادير آنها را تنظيم‬
                                                    ‫مينمايد.‬
  ‫21‬
                          ‫تابع ‪ get‬مقدار عددي يا رشته اي‬
                          ‫متناظر با يك خاصيت را بر ميگرداند.‬
‫رسم نمودار در ‪MATLAB‬‬
‫رسم نمودار در ‪MATLAB‬‬
                             ‫رسم همزمان چند منحني در يک‬
                                                      ‫نمودار‬
       ‫جهت رسم چند منحني به طور هم زمان در يك نمودار ميتوان از‬
                       ‫تابع‪ plot‬همچون مثال زير استفاده نمود. مثال‬

‫;1:1.:0=‪x‬‬
‫;)‪y=exp(x‬‬
‫;)‪z=exp(-x‬‬
‫)’‪plot(x,y,'-.r',x,z,'—gp‬‬
‫رسم معرفي چند تابع‪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‬بيان شده است.‬
‫)’‪Handle = ezplot(‘function‬‬

‫;)’)‪h=ezplot(‘tan(x‬‬
MATLAB ‫رسم نمودار در‬

Handle=ezplot(‘function',[xmin xmax ymin ymax])

H=ezplot('y-tan(x)',[0 3*pi/2 -2*pi 2*pi])
‫رسم نمودار در ‪MATLAB‬‬
                                          ‫تنظيم خصوصيات منحني‬
      ‫در مثال قب ل عدد ‪ H‬امكان دستيابي به منحن ي يا دس ته منحني‬
      ‫هاي رسم شده را فراهم مي آورد وبه كمك آن ميتوان تغييرات‬
                 ‫لزم را بر روي منحني هاي رسم شده اعمال نمود.‬
‫‪;(’--','set(H(1),'color','r','linestyle‬‬

‫‪;('.-','set(H(2),'linewidth',3,'linestyle‬‬
‫رسم نمودار در ‪MATLAB‬‬

                                                ‫رسم سه‬
     ‫‪ MATLAB‬براي ترس يم منحن ي هاي سه‬            ‫بعدي‬
                                              ‫تواب ع زيادي در‬
      ‫بعدي ب ه كار ميرون د ك ه پ ر كاربردتري ن آنه ا تابع‬
     ‫3‪ ezplot3,plot‬محس وب ميشوند.اي ن تواب ع همانن د توابع‬
     ‫‪ezplot,plot‬عم ل م ي كنن د ب ا اي ن تفاوت ك ه براي رسم‬
                       ‫منحني هاي سه بعدي پيش بيني شده اند.‬
‫‪;(Handle = plot3(X1,Y1,LineSpec,'PropertyName',PropertyValue‬‬

‫)]‪Handle = ezplot3( ‘funcX’,’funcY’,’funcZ’ ,[tmin,tmax‬‬
MATLAB ‫رسم نمودار در‬
                                                          ‫مثال‬
t = 0:pi/50:10*pi ;          ezplot3('sin(t)','cos(t)','t',[0,6*pi] )
plot3(sin(3*t),cos(2*t),t)   grid on
grid on
‫كار در كلس‬
‫رسم نمودار در ‪MATLAB‬‬

‫تابعي تعريف نماييد كه 3 متغير رشته اي را دريافت نموده ونمودار 3‬
                                  ‫بعدي تابع مربوطه رسم نماييد.‬
                   ‫‪xminorgrid=on‬‬
                   ‫‪yminorgrid=on‬‬
                   ‫0 5.0 5.0[=‪[Color‬‬
                   ‫41=‪Fontsize‬‬
                   ‫1 1 0 0[=‪[position‬‬
MATLAB ‫رسم نمودار در‬


z='tan(t)';
x='cot(t)';
y='t';
ezplot3(x,y,z)


set(gca,'color',[.5 .5 1],'xminorgrid','on','yminorgrid','on','position',[0 0 1 1])
MATLAB ‫رسم نمودار در‬
                                                 ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40)
ezsurfc('y/(1 + x^2 + y^2)',[-5,5,-2*pi,2*pi])

                                                 colormap([0 0 1])
MATLAB ‫رسم نمودار در‬
MATLAB ‫ويراست دستي نمودار د ر‬



                                 Insert Legend




      Edit Plot         Data cursor      Show Plot Tools
                  Pan
‫رسم نمودار در ‪MATLAB‬‬
‫ويراست دستي نمودار د ر ‪MATLAB‬‬
‫رسم نمودار در ‪MATLAB‬‬
‫ويراست دستي نمودار د ر ‪MATLAB‬‬
‫رسم نمودار در ‪MATLAB‬‬
‫ويراست دستي نمودار د ر ‪MATLAB‬‬
‫رسم نمودار در ‪MATLAB‬‬
‫ويراست دستي نمودار د ر ‪MATLAB‬‬
‫رسم نمودار در ‪MATLAB‬‬
‫ويراست دستي نمودار د ر ‪MATLAB‬‬
‫رسم نمودار در ‪MATLAB‬‬
‫ويراست دستي نمودار د ر ‪MATLAB‬‬
‫رسم نمودار در ‪MATLAB‬‬
‫ويراست دستي نمودار د ر ‪MATLAB‬‬
‫رسم نمودار در ‪MATLAB‬‬
‫ويراست دستي نمودار د ر ‪MATLAB‬‬
Cur ve
F itting
‫‪Cur ve F itting‬‬
‫‪Polynomial curve fitting‬‬

   ‫درونياب ي داده ها در نموداره ا يك ي از مس ائل مهم در علوم‬
   ‫مهندس ي و رياضيات محس وب ميگردد ك ه در اي ن جا در مورد‬
   ‫نحوه فيت نمودن يك منحني چندجمله اي درجه ي ‪n‬بر منحني‬
                                      ‫تابع‪ polyfit‬بحث ميشود.‬
                                                 ‫مورد نظر،‬

  ‫اي ن تاب ع متغيرماتريس ي ‪ x‬و تاب ع ماتريس ي ‪ y‬را دريافت كرده‬
 ‫وضرايب يك نمودار چندجمله اي از درجه ‪n‬را كه بر منحني متناظر با‬
                           ‫‪ x,y‬فيت هستند به ما تحويل ميدهد.‬
            ‫)‪p=polyfit(x,y,n‬‬
‫‪Cur ve F itting‬‬
‫‪Polynomial curve fitting‬‬
                                                  ‫تابع‪polyval‬‬
   ‫اين تابع و تابع ماتريسي ضرايب يك نمودار چندجمله اي از درجه ‪n‬و‬
   ‫متغيرماتريسي ‪ x‬را دريافت كرده و مقادير ‪y‬متناظر با ماتريس ‪ x‬را‬
                                                      ‫بر ميگرداند.‬
   ‫اين تابع معمول بلفاصله بعد از تابع ‪ polyfit‬به كار ميرود و براي‬
                 ‫شود.‬
       ‫رسم داده هاي درونيابي شده استفاده مي )‪p=polyval(p,x‬‬
Cur ve F itting
 Polynomial 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);




.‫ فيت شده است‬Y ‫ عبارتست از ضرايب چند جمله اي درجه 3 كه بر منحني‬p ‫در اين جا ماتريس‬

                   [p=[-2.7195 10.6061    8.8267   1.1678

                   Fitted curve=-2.7x^3 + 10.6x^2 + 8.8x + 1.2
‫كار در كلس‬
‫‪Cur ve F itting‬‬
   ‫‪Polynomial curve fitting‬‬

‫ادير ظرفيت حرارتي بر حسب ‪ j/kg.k‬و دما بر حسب درجه كلوين براي آهن فريتي‬
 ‫لص به صورت زير داده شده است. اگرفرض گردد ‪ Cp‬در محدوده دمايي فوق از‬
            ‫طي پيروي ميكند. معادله آن را بدست آوريد ونمودار آن را رسم نماييد.‬
      ‫;] 967 557 996 016 125 444[ = ‪Cp‬‬
      ‫;]3301 0001 008 006 054 892[ = ‪T‬‬
Cur ve F itting
Exponential curve fitting


p=polyfit(T,Cp,1);
p=

  0.4377 327.9665
a=polyval(p,T);

plot(T,Cp,‘g',T,a,'b','linewidth',2);

xlabel('T (k)','fontsize',14)

ylabel('Cp (j/kg.k)','FONTSIZE',14)
‫‪Cur ve F itting‬‬
‫‪Exponential curve fitting‬‬
       ‫براي درونيابي دادها به صورت اكسپونانسيلي از همان‬
       ‫تابع ‪ polyfit‬استفاده ميشود با اين تفاوت كه دراينجا به‬
                     ‫جاي ماتريس‪ y = 10 ، y‬آن وارد ميشود.‬
                                           ‫)‪f ( x‬‬
                                    ‫لگاريتم‬


       ‫فرض كني د ك ه مقادي ر تاب ع ‪ y‬قرار(‪ x ) = log‬ق‪ f‬تابعي‬
               ‫) ‪ y‬اس ت طب (‬
                                        ‫لگاريتمي به شكل‬
        ‫درونيابي شود.آنگاه في ت كردن بر: روي ماتريس ‪logy‬‬
                           ‫در نتيج ه اگ ر عم ل ميتوان نوشت‬
       ‫صورت گيرد تابع ‪ (f(x‬بدست مي آيد و ميتوان به كمك‬
                               ‫ان تابع ‪ y‬را هم بدست آورد.‬
‫كار در كلس‬
Cur ve F itting
Polynomial curve fitting



. ‫( مي باشد‬y=exp(a*x^2 + b*x +c   ‫اعداد زير مربوط به تابع‬
              .‫را بدست آوريد‬a,b,c ‫ضرايب‬
Cur ve F itting
Exponential curve fitting



Plot(data(:,1),data(:,3))
Cur ve F itting
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);
D ata
              D ata
            I mpor t
               and
             E xpor t




I mpor t
   and
 E xpor t
‫‪Data Impor t and E xpor t‬‬                           ‫‪D ata‬‬
                                                         ‫‪I mpor t‬‬
                                                            ‫‪and‬‬
‫زير فرمت فايل هايي كه ‪ matlab‬ميتواند بخواند يا بنويسد‬‫‪E xpor t‬جدول‬
 ‫را به هراه توابعي كه هر فرمت را پشتيباني ميكنند نشان ميدهد‬
‫‪Data Impor t and E xpor t‬‬                            ‫‪D ata‬‬
‫‪Import text data file‬‬                                    ‫‪I mpor t‬‬
                                                            ‫‪and‬‬
                                                          ‫‪E xpor t‬‬
‫ما براي سادگي كار روند مرحله به مرحله )ويزارد( خواندن يك فايل‬

  ‫متني كه حاوي داده هاي دستگاه ‪ DSC‬است را بررسي ميكنيم.‬
Data Impor t and E xpor t     D ata
Import text data file           I mpor t
                                   and
                                 E xpor t
Data Impor t and E xpor t     D ata
Import text data file           I mpor t
                                   and
                                 E xpor t
Data Impor t and E xpor t     D ata
Import text data file           I mpor t
                                   and
                                 E xpor t
‫‪Data Impor t and E xpor t‬‬                       ‫‪D ata‬‬
‫‪Import text data file‬‬                             ‫‪I mpor t‬‬
                                                     ‫‪and‬‬
                                                   ‫‪E xpor t‬‬

               ‫پس از طي مراحل ويزارد داده هاي انتخاب شده‬
                 ‫از فايل مورد نظر درون فضاي كاري نرم افزار‬
                      ‫توليد شده و قابل دسترسي خواهند بود.‬


              ‫•روال گام به گام ذكر شده براي كليه فرمت هايي‬
               ‫كه ‪ matlab‬از آن ها پشتيباني ميكند قابل انجام‬
                                                       ‫است.‬
‫‪Data Impor t and E xpor t‬‬                         ‫‪D ata‬‬
‫‪Export matlab file‬‬                                  ‫‪I mpor t‬‬
                                                       ‫‪and‬‬
                                                     ‫‪E xpor t‬‬

   ‫‪ MATLAB‬قادر است تا نتايج فعاليت هاي خود را به صورت هاي‬
   ‫مختلف ذخيره سازي نمايد كه اين كار را به كمك توابع خاصي كه‬
             ‫براي هر نوع فرمت خاص تعيين شده اند انجام ميدهد.‬

   ‫از جملنه مهمترين عمليات ‪ export‬در ‪ ، matlab‬ذخير ه‬
   ‫سازي به طر يق ايجاد فا يل مت ني، ذخيره سازي ت صوير با‬
   ‫پس وند هاي مختل ف، ذخيره س ازي داده ه ا ب ه صورت‬
   ‫فاي ل نرم افزار ‪ ، excel‬ذخيره س ازي تص اوير متحرك با‬
                                  ‫پسوند .‪ avi‬و ... ميباشد.‬
‫‪Data Impor t and E xpor t‬‬                             ‫‪D ata‬‬
‫‪Export matlab file‬‬                                       ‫‪I mpor t‬‬
                                                            ‫‪and‬‬
                                                          ‫‪E xpor t‬‬
   ‫‪ MATLAB‬قادر است كه اطلعات موجود در فضاي كاري خود را‬
   ‫به صورت فايلي با پسوند مخصوص به خود ذخيره كند) .‪ ( mat‬تا‬
                              ‫بتوان در آينده از آن ها استفاده نمود.‬
    ‫براي ذخيره كردن اطلعات ب ه شك ل “م ت فاي ل” از تابع ‪save‬‬
                                                   ‫استفاده ميشود.‬
  ‫)'2‪save ('path', 'var1', 'var‬‬
  ‫در عبارت بال اولي ن آرگومان )‪(path‬مس ير مورد نظر براي ذخيره‬
  ‫كردن را تعيين كرده و آرگومان هاي ديگر متغير هايي كه نياز است تا‬
                                    ‫نگهداري شوند را تعيين مي كنند.‬
‫‪Data Impor t and E xpor t‬‬                         ‫‪D ata‬‬
‫‪Export matlab file‬‬                                   ‫‪I mpor t‬‬
                                                        ‫‪and‬‬
                                                      ‫‪E xpor t‬‬

                 ‫در اگر تابع ‪ save‬به شكل مقابل به كار رود، كليه‬
 ‫)'‪save ('path‬‬   ‫متغير هاي موجود در فضاي كاري، در مسير مورد‬
                                             ‫نظر نوشته ميشوند.‬
                 ‫در حالتي كه تابع ‪ save‬بدون ارگومان ورودي به‬

 ‫‪save‬‬            ‫كار رود كلي ه متغي ر هاي موجود در مسير جاري‬
                      ‫‪) matlab‬مسير پيش فرض( نوشته ميشوند.‬
‫كار در كلس‬
‫‪Cur ve F itting‬‬
‫‪Import matlab file‬‬

  ‫ل متني با نام ‪ dsc.txt‬را از روي ‪ desctop‬به محيط ‪ matlab‬وارد كرده‬
                             ‫نحني ‪dh/dt‬بر حسب زمان را رسم نماييد.‬
                                                       ‫‌‬
‫‪Data Impor t and E xpor t‬‬                          ‫‪D ata‬‬
‫‪import matlab file‬‬                                    ‫‪I mpor t‬‬
                                                         ‫‪and‬‬
                                                       ‫‪E xpor t‬‬


                  ‫در اگر تابع ‪ load‬به شكل مقابل به كار رود، كليه‬
‫)'‪A=load ('path‬‬
                  ‫متغي ر هاي موجود در فاي ل ‪‌ path‬با پسوند ‪mat‬‬
                                  ‫داخل متغير ساختاري ‪ A‬ميشود.‬
                  ‫در حالتي كه تابع ‪ load‬به شكل مقابل به كار رود،‬
 ‫‪Load path‬‬
                  ‫كليه متغير هاي موجود در مسير ‪ path‬به همان‬
                                  ‫صورت وارد محيط كاري ميشوند.‬
Data Impor t and E xpor t                                    D ata
import file                                                     I mpor t
                                                                   and
                                                                 E xpor t
A=load (‘filename‘,’format’)

 Read data from text file;

    fid=textread(‘d:Mohsennecessary informations.txt','%s')

                   'sutaspire@googlegroups.com'
                   '--------------------------------'
                   'ETS'
                   'ID:3516769'
                   'user:moosavinezhad'
                   'pass:Smoosavi2919'
‫پنجره هاي‬
  ‫كنترلي‬
‫پنجره هاي كنترلي‬
Inputdlg

 answer = inputdlg(prompt)

  a=inputdlg('Please input your name')
  a=
      'Mohsen'
  >> whos a
    Name     Size             Bytes Class
    a        1x1                72 cell array
  Grand total is 7 elements using 72 bytes
‫پنجره هاي كنترلي‬
Inputdlg

 answer = inputdlg(prompt,dlg_title,num_lines,defAns)
    >> 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 array
    Grand total is 13 elements using 84 bytes
‫كار در كلس‬
‫پنجره هاي كنترلي‬
     ‫پنجره اي كنترل ي ايحاد كني د ك ه تابعي را از كاربر‬
                                                        ‫بگيرد.‬
      ‫’:‪Prompt=‘Plaese input function name‬‬
      ‫’‪Title=‘Input Function‬‬
      ‫1=‪num_line‬‬
      ‫’2^‪Def_ans=‘x‬‬



‫در بازه ]0 001[ رسم‬   ‫ابع 3^‪ (log10(x‬را به كمك اين پنجره و سپس به كمك تابع ‪ezplot‬‬
‫پنجره هاي كنترلي‬

answer = inputdlg('Plaese input function name:','Input Function',1,{'x^2'})
answer =
  'log10(x^3)'

>> ezplot(char(answer),[0 100])
‫پنجره هاي كنترلي‬
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‬‬
                 ‫صورت عددي از كاربر دريافت كند.‬
‫سپس به ك مك پنجره كنتر لي ‪ msgbox‬ضرا يب معادله‬
‫در جه 2 را كه بر آن ف يت ميشود به كاربر نشان‬
                                           ‫دهيد.‬
‫}'‪Prompt= {'Input x','input y‬‬
‫’‪Title=‘Input Function‬‬
‫1=‪num_line‬‬
‫)}']01 8 6 4 2[',']5 4 3 2 1['{= ‪Def_ans‬‬
‫پنجره هاي كنترلي‬


>> answer = inputdlg({'Input x','input y'},'Input Function',...
1,{'[1 2 3 4 5]','[2 4 6 8 10]'});
>> x=str2num(char(answer(1)));
>> y=str2num(char(answer(2)));
>> p=polyfit(x,y,2);
>> message=strcat('Coefficient for linear fitting curve is:[', num2str(p), ']');
>> msgbox(message,’Coefficient of fitted curve’)
Symboli c
  M ath
‫‪Symbolic math‬‬
‫‪Introduction‬‬

   ‫رياص يات س مبليك بخش ي از ‪ matlab‬اس ت ك ه در آ ن ب ه محاس بات ب ه صورت‬
   ‫سمبوليك وب ه كم ك نماده ا ص ورت م ي گيرد. جعب ه ابزار رياضيات سمبليك‬
                     ‫مكمل بخش محاسبات عددي ‪ matlab‬محسوب ميشود.‬
‫‪Symbolic math‬‬
‫‪Introduction‬‬
  ‫جعبه ابزار رياصيات سمبليك نوع جديدي از داده ها به نام اشيا سمبليك را تعريف‬
  ‫مي كند . يك شيي سمبوليك يك داده محسوب ميشود كه يك رشته را به عنوان‬
  ‫يك نماد در خود ذخيره ميكند. اين جعبه ابزار به كمك اشيا سمبليك متغيرها،‬
                            ‫عبارات و ماتريس هاي سمبليك را نمايش ميدهد.‬


                                        ‫چگونه ميتوان يك متغير سمبليك تعريف كرد؟‬

               ‫به كمك توابع ‪ sym , syms‬ميتوان متغيرهاي سمبليك تعريف نمود.‬
Symbolic math
Introduction
  ‫ يك رشته را به عنوان ورودي دريافت كرده و يك خروجي‬sym ‫تابع‬
 syms ‫از نوع سمبليك به ما ميدهد. براي سادگي ميتوان از عبارت‬
 a=sym('alpha')                    .‫ استفاده نمود‬sym ‫به جاي‬
 a =alpha
 b=a^2
                    a = sqrt(sym(2^2));
 b=
                    b=2;
  alpha^2           whos a b
                      Name     Size               Bytes Class
                      a         1x1               126 sym object
                      b         1x1                8 double array
                    Grand total is 2 elements using 126 bytes
Symbolic math
Introduction
                                                                subs ‫تابع‬

  ‫ اين امكان را به ما ميدهد تا در يك عبارت به جاي مقدار سمبليك يك‬subs ‫تابع‬
                                                   .‫عدد را جايگزين كنيم‬
  syms x y
  z=y*sin(x);               syms a b
  z1=subs(z,x,pi/2)         f=subs(cos(a)+sin(b),{a,b},{sym('alpha'),pi})
  z1=                       f=
  y                         cos(alpha)
‫كار در كلس‬
‫‪Symbolic math‬‬


  ‫مقادير‬   ‫ازاي‬   ‫ب ه‬   ‫‪ (z=atan(x*y)-exp(y‬را‬   ‫تاب ع‬
                               ‫2=‪ x=1,y‬بدست آوريد.‬


 ‫منحني اين تابع را به ازاي 01:1=‪ x=1:10;y‬رسم كنيد.‬
Symbolic math

                        x=1:10;
syms x y
                        y=10:10:100;
z=atan(x*y) - exp(y);
                        z=subs(z,{x,y},
f=subs(z,{x,y},{1,2})
                          {1:10,10:10:100});
f=
                        X1=1:10;
-6.2819
                        Y1=10:10:100;
                        Plot3(x1,y1,z)
Symbolic Math
Symbolic Math functions                            Calculus



 The Symbolic Math Toolbox provides functions to do the basic
   operations of calculus. The following sections describe
   these functions
  Differentiation
  Limits
   Integration
  Symbolic Summation
   Taylor Series
  Jacobian
Symbolic Math
Symbolic Math functions               Calculu
                                         s

                  Differentiation
                                    Examples
                                    Assume
                                    syms x t
                                    Then
                                    diff(sin(x^2))
                                    returns
                                    2*cos(x^2)*x
                                    and
                                    diff(t^6,6)
                                    returns
                                    720
Symbolic Math
Symbolic Math functions                        Calculu
                                                  s


   limit           Examples
                   Assume
                   syms x a t h;
                   Then
                   limit(sin(x)/x)               => 1
                   limit(1/x,x,0,'right')         => inf
                   limit(1/x,x,0,'left')          => -inf
                   limit((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
Symbolic Math functions                    Calculu
                                              s
       integration

                          Examples
                          int(-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/4
                          int(2*x, sin(t), 1) returns
                          1-sin(t)^2
                          int([exp(t),exp(alpha*t)]) returns
                          [exp(t), 1/alpha*exp(alpha*t)]
Symbolic Math
Symbolic Math functions               Simplifications
                                        Substitution
                                              s

        f = x^3-6*x^2+11*x-6
         g = (x-1)*(x-2)*(x-3)
        h = -6+(11+(-6+x)*x)*x
    pretty(f), pretty(g), pretty(h)
          x3 - 6 x2 + 11 x - 6
         (x - 1) (x - 2) (x - 3)
        -6 + (11 + (-6 + x) x) x
Symbolic Math
Symbolic Math functions                         Simplifications
                                                  Substitution
                                                        s

   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.
Symbolic Math
Symbolic Math functions                       Simplifications
                                                Substitution
                                                      s

   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
Symbolic Math
Symbolic Math functions   Simplifications
                            Substitution
                                  s
Symbolic Math
Symbolic Math functions                  Simplifications
                                           Substitution
                                                 s


simplify
Symbolic simplification
R = simplify(S)

simplify(S) simplifies each element of
   the symbolic matrix S using Maple
   simplification rules
Symbolic Math
Symbolic Math functions           Integral
                                Transforms



                      fourier
Symbolic Math
Symbolic Math functions            Integral
                                 Transforms



                      ifourier
Symbolic Math
Symbolic Math functions                                 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) specified
 by eq1, eq2,... using v as the independent variable and the boundary
 and/or initial condition(s) specified by cond1,cond2,....
Symbolic Math
Symbolic Math functions                             Solution of
                                                     Equations


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)
Symbolic Math
Symbolic Math functions                             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
Symbolic Math functions                            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
Symbolic Math functions                              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‬‬


 ‫و بازه رسم‬   ‫تابعي بنويسيد كه دوتابع با نام هاي ‪fx,gx‬‬
  ‫و‬    ‫آن ه ا را درياف ت كرده وسپس ‪(f(gx), g(fx‬‬
 ‫‪ fx/gx,fx*gx‬را در آن بازه به كمك تا بع ‪ subplot‬دريك‬
                                 ‫‪ figure‬رسم نمايد.‬
Symbolic math
function plotted(fx,gx,domain)
syms x
fx=sym(fx);             ‫تعاريف‬
gx=sym(gx);
   fgx=subs(fx,x,gx);
   subplot(2,2,1);               f(g(x))
   ezplot(fgx,domain)

          fgx=subs(gx,x,fx);
          subplot(2,2,2);                  g(f(x))
          ezplot(gfx,domain)
                fog=fx/gx;
                subplot(2,2,3);               f(x)/g(x)
                ezplot(fog,domain)

                     fmg=fx*gx;
                     subplot(2,2,4);                 g(x)*f(x)
                     ezplot(fmg,domain)
‫خداحافظ‬

More Related Content

TXT
سريال
PPTX
Root canal filling materials and their properties
PPT
حضرت عيسي مسيح فرزند حضرت مريم
PPT
Flowchart
PDF
c++ programming - Numbers and Characters.pdf
PDF
Pca تجزیه و تحلیل مولفه های اساسی
PDF
work order of logic laboratory
PDF
دیکدر و مالتی پلکسر در مدارهای ترکیبی
سريال
Root canal filling materials and their properties
حضرت عيسي مسيح فرزند حضرت مريم
Flowchart
c++ programming - Numbers and Characters.pdf
Pca تجزیه و تحلیل مولفه های اساسی
work order of logic laboratory
دیکدر و مالتی پلکسر در مدارهای ترکیبی

Similar to Matlab present (10)

PPT
روش پنلی برای بال ناکا 0009
PDF
Array in data structures and algorithm design
PDF
گزارش اعتبار سنجی توربین ناسا
PPTX
PDF
بخش دوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )
PPTX
PPTX
02 vectorization fundamentals_of_parallelism_and_code_optimization-www.astek.ir
PDF
مدل MapReduce
PDF
avr project , sim808l, mmc card
روش پنلی برای بال ناکا 0009
Array in data structures and algorithm design
گزارش اعتبار سنجی توربین ناسا
بخش دوم :كاربرد رايانه در برق (آموزش ساده سيمولينك )
02 vectorization fundamentals_of_parallelism_and_code_optimization-www.astek.ir
مدل MapReduce
avr project , sim808l, mmc card
Ad

Matlab present

  • 1. MATLAB`s Introductions By S.Mohsen Moosavi Nezhad
  • 2. What is MATLAB? Matlab is a commercial "Matr ix L abor ator y"
  • 3. 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
  • 4. MATLAB Parts • Developed Environment • Programming Language • Graphics • Toolboxes • Application Program Interface
  • 5. Installation Guide Step 1: Start the Installer I nstall ati on G uide
  • 6. Installation Guide Step 2: Enter Identification and License Information I nstall ati on G uide
  • 7. Installation Guide Step 3: Review the Software Licensing Agreement I nstall ati on G uide
  • 8. Installation Guide Step 4: Choose Installation Type I nstall ati on G uide
  • 9. Installation Guide Step 5: Specify Installation Folder and Products I nstall ati on G uide
  • 10. Installation Guide Step 6: Specify Installation Options (Custom Only) I nstall ati on G uide
  • 11. Installation Guide Step 7: Confirm Your Choices I nstall ati on G uide
  • 12. Installation Guide Step 8: Read Product Configuration Notes I nstall ati on G uide
  • 13. Installation Guide Step 9: Complete the Installation I nstall ati on G uide
  • 20. Application of MATLAB in Engineering • Image Processing • Data Acquisition • Image Acquisition • Partial Differential Equations • Signal processing • Curve Fitting • Simulinc • Symbolic Mathematics • wavelet • Plotting
  • 21. Application of MATLAB in Material Engineering • Image Processing – Phase Fraction – Grain Size – Nodular Grafit – Coating Thickness – Inclusions – Edit Image
  • 22. ‫‪Phase Fraction‬‬ ‫فولد ساختماني‬ ‫54‪CK‬‬ ‫درصد كربن 75 *‬ ‫800.0=64.0‬
  • 24. ‫‪Nodular Grafit‬‬ ‫2‬‫0‬ ‫1‬‫0‬ ‫0‬ ‫1‬ ‫درصد كرويت گرافيتهاي كروي.‬ ‫رنگ آبي تعداد ذرات با كرويت بيش از 08درصد و رنگ‬ ‫قرمز تعداد ذرات با كرويت كمتر از 56 درصد را نشان‬ ‫ميدهند.‬
  • 26. ‫‪Image Acquisition‬‬ ‫به عنوان مثال : اتصال به ميكروسكپ و دريافت‬ ‫تصاوير از ريزساختار مورد نظر‬
  • 27. ‫‪Data‬‬ ‫‪Acquisition‬‬ ‫به عنوان مثال : اتصال به ترموكوپل و دريافت داده ها‬
  • 28. Curve Fitting & Plotting Effect of temperature on the reduction kinetics of uncatalyzed concentrate:graphite:lime mixture.
  • 29. ‫‪Partial Differential Equations‬‬ ‫‪magnetic flux density‬‬ ‫مثا لي از ا ثر پوسته اي،‬ ‫زمان ي كه جريان‬ ‫يك‬ ‫از‬ ‫متناوب‬ ‫اس توانه ي طويل‬ ‫م سي با سطح مقطع‬ ‫دايروي، عبور مي‬ ‫كن د مورد بررسي‬ ‫قرار مي گيرد.‬ ‫رسانايي ويژه ي مس‬ ‫001 %‬ ‫ضريب تروايي نسبت به خل‬ ‫1‬ ‫فركانس‬ ‫05 هرتز‬
  • 30. Toolboxes Col l ecti ons of functi ons to sol ve pr oblems of sever al appli cati ons.
  • 31. 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: NOTE: when a semi-colon ”;” is >> tutorial = 1234; placed at the end of each >> tutorial = 1234 command, the result is not tutorial = displayed. 1234
  • 32. MATLAB BASICS Initializing 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 1 1 >> f = [1:4]′; h= 2 2 >> g = 1:4; 3 3 4 4 >> h = [ g′ g′ ];
  • 34. ‫‪M A T L A B B A SI CS‬‬ ‫ماتريس زير را به كمك عبارت ‪ first: increment: last‬و به وسيله تركيب‬ ‫ماتريس ها توليد كنيد‬ ‫8 7 6 5‬ ‫51 11 7 3‬ ‫2- 1- 0 1‬
  • 35. M A T L A B B A SI CS A=[5:8 A=[ 5:8 ; 3:4:18 ; 1:-1:-2] 3:4:18 or A= 1:-1:-2]; 5 6 7 8 3 7 11 15 1 0 -1 -2
  • 36. MATLAB BASICS Changing the data format >> value = 12.345678901234567; format short → 12.3457 format long → 12.34567890123457 format short e → 1.2346e+001 format long e → 1.234567890123457e+001 format short g → 12.346 format long g → 12.3456789012346 format rat → 1000/81
  • 37. Calculations at the Command Line MATLAB as a calculator Assigning Variables » -5/(4.8+5.32)^2 » a = 2; Semicolon ans = » b = 5; suppresses -0.0488 screen output » (3+4i)*(3-4i) » a^b ans = ans = Results 25 32 assigned to » cos(pi/2) » x = 5/2*pi; “ans” if name ans = not specified 6.1230e-017 » y = sin(x) » exp(acos(1)) y = ans = 1 1 » z = asin(y) () parentheses for z = function inputs 1.5708 A Note about Workspace: Numbers stored in double-precision floating point format
  • 38. The Matrix in MATLAB Rectangular Matrix: Scalar: 1-by-1 array Vector: m-by-1 array 1-by-n array Columns Matrix: m-by-n array (n) 1 2 3 4 5 A= 4 1 10 6 1 11 6 16 2 21 A (2,4) 1 2 7 12 17 22 2 8 1.2 9 4 25 Rows (m) 3 7.2 3 5 8 7 13 1 18 11 23 A (17) 4 0 4 0.5 9 4 14 5 19 56 24 5 10 15 20 25 5 23 83 13 0 10
  • 39. Entering Numeric Arrays » a=[1 2;3 4] a = Use square 1 2 brackets [ ] 3 4 Row separator » b=[-2.8, sqrt(-7), (3+5+6)*3/4] semicolon (;) b = -2.8000 0 + 2.6458i 10.5000 Column separator » b(2,5) = 23 space / comma (,) 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
  • 40. Array Subscripting /Indexing 1 2 3 4 5 A= 4 1 10 6 1 11 6 16 2 21 1 2 2 8 1.2 7 9 12 4 17 25 22 A(1:5,5) A(1:end,end) 3 7.2 3 5 8 7 13 1 18 11 23 A(:,5) A(:,end) A(21:25) A(21:end)’ A(3,1) 4 0 4 0.5 9 4 14 5 19 56 24 A(3) 5 10 15 20 25 5 23 83 13 0 10 A(4:5,2:3) A([9 14;10 15])
  • 41. Colon 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]
  • 42. Colon 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]  1 2 5 − 1 1 0 − 1 0 1 C=  E=   3 2 − 1  3 2 − 1    0 1 4
  • 43. Colon 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]  1 2 5 − 1  0 1 3 2 C= G=   3 2 − 1 0 1    0 1 4
  • 44. Matrix Multiplication » a = [1 2 3 4; 5 6 7 8]; [2x4] » b = ones(4,3); [4x3] » c = a*b [2x4]*[4x3] [2x3] c = 10 10 10 26 26 26 a(2nd row).b(3rd column) Array Multiplication » 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)
  • 45. Multidimensional Arrays The first references array dimension 1, the row. » A = pascal(4); The second references dimension 2, the » A(:,:,2) = magic(4) column. A(:,:,1) = The third references dimension 3, The 1 1 1 1 page. 1 2 3 4 1 0 0 0 1 3 6 10 0 1 0 0 1 4 10 20 0 0 1 0 0 0 0 1 A(:,:,2) = 16 2 3 13 0 0 0 0 Page N 5 11 10 8 16 20 30 130 0 110 1 0 80 0 9 7 6 12 1 15 1 10 0 60 120 0 1 2 9 3 7 4 4 14 15 1 1 3 4 14 15 6 10 1 » A(:,:,9) = diag([1 1 1 1 4 10 20 1]); Page 1
  • 46. Multidimensional Arrays A(2,1,2) » A = pascal(4); » A(:,:,2) = magic(4) A(3:4,2:3,1) A(:,:,1) = b=A(3,4,5) 1 1 1 1 1 2 3 4 b= 1 3 6 10 0 1 4 10 20 c=A(3,3,9) A(:,:,2) = 16 2 3 13 c= 5 11 10 8 1 9 7 6 12 4 14 15 1 » A(:,:,9) = diag(ones(1,4));
  • 48. ‫‪M A T L A B B A SI CS‬‬ ‫ماتريس زير را به ساده ترين و کوتاه ترين شکل ممکن تعريف کنيد.‬ ‫1‬ ‫2‬ ‫3‬ ‫4‬ ‫0‬ ‫0‬ ‫0‬ ‫0‬ ‫1‬ ‫2‬ ‫3‬ ‫4‬ ‫1‬ ‫3‬ ‫5‬ ‫0‬ ‫0‬ ‫0‬ ‫0‬ ‫1‬ ‫3‬ ‫5‬ ‫7‬ ‫0‬ ‫0‬ ‫0‬ ‫0‬ ‫7‬ ‫1‬ ‫1‬ ‫1‬ ‫0‬ ‫0‬ ‫0‬ ‫0‬ ‫1‬ ‫1‬ ‫1‬ ‫1‬ ‫1‬ ‫5‬ ‫4‬ ‫3‬ ‫5‬ ‫4‬ ‫3‬ ‫2‬ ‫2‬
  • 49. M A T L A B B A SI CS 1 2 3 4 A(1,:,1)=1:4; 1 3 5 7 1 1 1 1 A(2,:,1)=1:2:7; 5 2 4 3 A(3,:,1)=1; 0 0 0 0 0 0 0 0 A(4,:,1)=5:-1:2; 0 0 0 0 0 0 0 0 A(:,:,3)=A(:,:,1) 1 2 3 4 1 3 5 7 1 1 1 1 5 4 3 2
  • 50. Matrix Manipulation Functions • zeros: Create an array of all zeros >> zeros(2,2,4) a=[ 1 2 ; diag(4,2)3 4]; ones([2,2,4]) • >> fliplr(a) ans = ones: Create an array of all ones ans(:,:,1)0= 4 ans0 = • eye: Identity Matrix >> zz=ones([2,2,4]); 0 2 1 0 1 1 0 >> a=size(zz); • rand: Uniformly distributed random numbers 0 >> eye(5,7) 4 1 0 1 3 0 ans(:,:,2) = • diag: Diagonal matrices and diagonal of a 10 ans = 0 matrix 1 1 0 0 0 0 0 0 • size: Return array dimensions 1 0 0 0 0 0 0 1 0 1 0 ans(:,:,3) = • fliplr: Flip matrices left-right 0 1 0 0 0 10 0 0 0 1 • flipud: Flip matrices up and down0 1 0 0 10 0 0 0 0 0 0 0 0 1 1 0 0 • repmat: Replicate and tile a matrix ans(:,:,4) = 1 0 1 0 1 0 1 0
  • 51. Matrix Manipulation Functions • transpose (’): Transpose matrix • rot90: rotate matrix 90 • tril: Lower triangular part of a matrix • triu: Upper triangular part of a matrix • cross: Vector cross product • dot: Vector dot product • det: Matrix determinant • inv: Matrix inverse • eig: Evaluate eigenvalues and eigenvectors • rank: Rank of matrix
  • 52. M A T L A B B A SI CS sum ‫تابع‬ .‫حاصل جمع مولفه هاي يك ماتريس را محاسبه كرده و برميگرداند‬ B = sum(A); returns sums along different dimensions of an array. B = sum(A,dim) sums along the dimension of A specified by scalar dim >> a=[1 2 3 ; 7 5 10] >> a(:,:,2)=2; >> sum(a,2) >> sum(a) >> sum(a,1) ans(:,:,1) = 6 ans = ans(:,:,1) = 22 8 7 13 8 7 13 ans(:,:,2) = ans(:,:,2) = 6 4 4 4 6
  • 53. M A T L A B B A SI CS diff ‫تابع‬ .‫حاصل تفريق مولفه هاي يك ماتريس را محاسبه كرده و برميگرداند‬ Y = diff(X); calculates differences between adjacent elements of X. [X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)] >> a=[1 3 5;7 10 15]; >> z >> a(:,:,2)=[1:3;4:2:8]; z(:,:,1) = >> z=diff(a,1); 6 7 10 z(:,:,2) = 3 4 5
  • 54. M A T L A B B A SI CS diff ‫تابع‬ Y = diff(X,n) applies diff recursively n times, resulting in the nth difference. Y = diff(X,n,dim) is the nth difference function calculated along the dimension specified by scalar dim. z=diff(a,2); >> z >> z=diff(a,2,2) z(:,:,1) = z(:,:,1) = 0 1 3 2 z(:,:,2) = z(:,:,2) = 0 1 1 0
  • 56. ‫‪M A T L A B B A SI CS‬‬ ‫انتگرال عددي تابع ‪ (sin(x‬را در بازه ]0 2/‪ ،[pi‬به كمك توابع‬ ‫‪ diff‬و ‪ sum‬محاسبه كنيد.‬ ‫جهت بدست آوردن نتايج صحيح از عملگر : با گام 100.0 استفاده كنيد.‬
  • 57. M A T L A B B A SI CS x=0 : 0.001 : pi/2; y=sin(x); Integ=sum(y(1:end-1).*diff(x)) Integ= 0.9987 Derivatives=diff(y)./diff(x);
  • 60. Character Arrays (Strings) • Created using single quote delimiter (') » str = ‘M Moosavi' str = M Moosavi » str2 = 'Isn''t MATLAB great?' str2 = Isn't MATLAB great? • Each character is a separate matrix element (18 bits of memory per character) str = M M o o s a v i 1x9 vector • Indexing same as for numeric arrays
  • 61. String Array Concatenation Using [ ] operator: » str ='Hi there,'; 1x9 vectors Each row must be » str1='Everyone!'; same length » new_str=[str, ' ', str1] new_str = Row separator: Hi there, Everyone! 1x19 vector semicolon (;) » str2 = 'Isn''t MATLAB great?'; Column separator: » new_str2=[new_str; str2] space / comma (,) new_str2 = Hi there, Everyone! Isn't MATLAB great? 2x19 matrix For strings of different length: • STRVCAT » new_str3 = strvcat(str, str2) • char new_str3 = Hi there, 2x19 matrix Isn't MATLAB great? (zero padded)
  • 62. 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
  • 63. Working with String Arrays a='alireza'; a='alireza'; a=strcmp ('('Yes', 'No b='ali'; b=‘reza'; a= comp=strncmp(a,b,3) comp=findstr(a,b) 0 b=strcmp('Yes', 'Yes') comp = comp = b= 1 4 1 comp=strncmp(a,b,4) comp=findtr(a,'ah') comp = comp = 0 [] a = 'hello ' b = 'goodbye' strcat(a, b) ans = hellogoodbye
  • 64. 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]; •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];
  • 65. Cell Arrays Array for which the elements are cells and can .hold other MATLAB arrays of different types •Using braces {} to point to elements of cell array •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};
  • 66. Loop Controls ‫مثال‬ if-end ‫حلقه‬ score=[18 17 12 20] if expression1 i=2; statements1 if score(i)>18 elseif expression2 grade=‘A’ statements2 elseif score(i)>16 else grade=‘B’ statements3 elseif score(i)>14 end grade=‘C’ else grade=‘D’ end
  • 67. ‫‪Loop Controls‬‬ ‫حلقه هاي كنترلي :‬ ‫در نوش تن توا بع ب سيار پ يش مي آ يد كه نياز به انجام مكرر يك سري‬ ‫از دستورات ميباشد در اين گونه موارد از حلقه هاي كنترلي استفاده‬ ‫مي شود. در اين جا به معرفي چند حلقه كنترلي مي پردازيم.‬ ‫حلقه ‪for-end‬‬ ‫مثال‬ ‫;5:2:1=‪for a‬‬ ‫‪for index = start : increment : end‬‬ ‫;0=‪x‬‬ ‫‪statements‬‬ ‫5:1 = ‪for j‬‬ ‫‪end‬‬ ‫;)‪x=x+a(j‬‬ ‫‪end‬‬ ‫‪end‬‬
  • 68. F uncti ons in M A TL A B
  • 69. ‫‪F unctions in MA TL A B‬‬ ‫تاب ع ب ه مجموع ه اي از دس تورات گفت ه م ي شود كه‬ ‫فرايندي خاص را بر روي داده هاي ورودي انجام داده و‬ ‫خروجي را به ‪ matlab‬مي فرستد.‬ ‫‪workspace‬‬ ‫‪input output‬‬ ‫‪function‬‬
  • 70. ‫‪F unctions in MA TL A B‬‬ ‫هر تابع با كلمه كليدي ‪ function‬آغاز ميشود.‬ ‫•‬ ‫توا بع براي اين كه قا بل فراخوا ني باش ند باي ستي در م سير معيني‬ ‫•‬ ‫ذخيره شوند.‬ ‫فراخواني يك تابع از طريق نام آن صورت ميگيرد.‬ ‫•‬ ‫يك تابع ميتواند در بدنه خود ديگر توابع را فراخواني كند.‬ ‫•‬ ‫هر تابع ميتواند خود محتوي چند تابع باشد.‬ ‫•‬ ‫توا بع فا يل هاي مت ني مح سوب ميشو ند كه با پسوند .‪ m‬ذخيره‬ ‫•‬ ‫مي گردند.‬
  • 71. ‫‪F unctions in MA TL A B‬‬ ‫هر تابع ميتواند شامل چند متغير ورودي و يا خروجي باشد.‬ ‫•‬ ‫متغ ير هايي كه در بدنه تابع تعريف و يا ايجاد ميشوند در صورتي‬ ‫•‬ ‫كه جزء متغيرهاي خروجي نباش ند در فضاي كاري قابل شناسايي‬ ‫نيستند.‬ ‫تابع به صورت ذيل تعريف مي‬ ‫شود.‬ ‫,1‪function [out1, out2, ...] = funname(in‬‬ ‫متغير هاي 2‪ … ,in1,in‬متغيرهاي ورودي ومتغيرهاي 2‪…,out1,out‬‬ ‫)... ,2‪in‬‬ ‫متغيرهاي خروجي ميباشند.‬
  • 72. ‫‪F unctions in MA TL A B‬‬ ‫براي اين كه بتوان در ‪ matlab‬تابع‬ ‫نوش ت كاف ي است از منوي‬ ‫‪ file‬گزي نه ‪ new‬و سپس گزينه‬ ‫‪ mfile‬را انتخاب نمود. در اين‬ ‫صورت ص فحه سفيدي باز‬ ‫ميشود كه امكان نوش تن تابع‬ ‫را فراهم مي آورد.‬
  • 73. ‫‪F unctions in MA TL A B‬‬ ‫پس از اين كه تا بع به طور كا مل نوش ته شد بايد ان‬ ‫را ‪ save‬كرد.‬
  • 74. F unctions in MA TL A B Loop Controls switch-case-end ‫عبارت‬ ‫مثال‬ method = 'Bilinear'; switch switch_expr switch lower(method) case case_expr case {'linear','bilinear'} statement, ..., statement case {case_expr1, case_expr2,...} disp('Method is linear') statement, ..., statement case 'cubic' otherwise disp('Method is cubic') statement, ..., statement otherwise end disp('Unknown method.') end
  • 75. F unctions in MA TL A B :‫مثال‬ ‫مي خواهيم تابعي بنويسيم كه يك عدد را دريافت كرده وسپس‬ .‫ محاسبه كند‬for ‫فاكتوريل آن را به كمك حلقه‬ function n = factorial (k) % 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; end end
  • 76. F unctions in MA TL A B ‫ نتا يج به صورت ز ير قابل‬matlab ‫پس از اجراي تا بع در‬ .‫مشاهده است‬ >> a=factorial(5) a= 120 >> a=factorial(-1) a= Error, negative argument
  • 78. ‫‪F unctions in MA TL A B‬‬ ‫1. اگر قرار باشد يك تابع مشتق وانتگرال يك رشته‬ ‫را تعيينن نمايند بايند داراي چنند متغير ورودي و‬ ‫خروجني باشد . در صنورت امكان اينن تابع را‬ ‫نوشت نه و بوس نيله آ نن مشت نق وانتگرال تابع‬ ‫ن‬ ‫ن‬ ‫ن‬ ‫ن‬ ‫2^‪ (exp(x‬را محاسبه كنيد‬ ‫3. تاب عي بنوي سيد كه يك ماتر يس برداري را دريافت‬ ‫كرده و داده هاي آنرا از بزرگ به كو چك رديف‬ ‫نموده و در خروجي بفرستد.‬
  • 79. F unctions in MA TL A B function [dif integ] = difint (func) if isstr(func)~=1 disp(‘please input a string function’) return end dif=diff(func); integ=int(func);
  • 80. ‫‪F unctions in MA TL A B‬‬ ‫توابع ‪varargin , varargout , nargin , nargout‬‬ ‫گا هي اوقات پ يش مي آ يد كه تعداد متغ ير هاي ورودي و يا خرو جي يك‬ ‫تا بع واب سته به عملكرد تا بع تغي ير ميك ند در نتي جه هنگام تعر يف تابع‬ ‫دچار مش كل ميشويم . به عنوان مثال تا بع ‪ plot‬ميتوا ند داراي يك متغير‬ ‫ورودي با شد و يا اين كه واب سته به نوع نمودار و نحوه تر سيم به طور‬ ‫نامحدود متغ ير ورودي داش ته باشد. همچن ين ا ين تا بع ميتوا ند داراي يك‬ ‫متغ ير خرو جي با شد يا ا صل متغ ير خرو جي نداش ته باشد. در ا ين مواقع‬ ‫به عنوان متغينر ورودي وينا خروجي‬ ‫از توابنع ‪varargin , varargout‬‬ ‫استفاده مي شود.‬
  • 81. ‫‪F unctions in MA TL A B‬‬ ‫توابع ‪varargin , varargout , nargin , nargout‬‬ ‫متغينر ‪ varargin‬به عنوان ورودي تابنع عمنل كرده و كليه متغيرهاي‬ ‫ورودي را در خود قرار ميدهد. ا ين متغ ير براي هر تابع حاوي ورودي‬ ‫هاي همان تا بع ا ست. نوع آن سلولي و طول آن برابر با تعداد ورودي‬ ‫هاي تابع ميباشد.‬ ‫متغينر ‪ varargout‬به عنوان خروجني تابنع عمنل كرده و حاوي كليه‬ ‫تابنع اسنت. نوع آنن سنلولي و طول آنن برابر با‬ ‫متغيرهايني خروجني‬ ‫تعداد خروجي هاي تابع ميباشد.‬ ‫متغ ير ‪ nargin , nargout‬به ترت يب محتوي تعداد متغيرهاي خروجي و‬ ‫ورودي هستند. طول آنها برابر يك و نوع آنها عددي است.‬
  • 82. Functions in MATLAB 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 ':'.
  • 83. 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.
  • 84. ‫رسم نمودار‬ ‫در‬ ‫‪MATLAB‬‬
  • 85. ‫رسم نمودار در ‪MATLAB‬‬ ‫رسم نمودار يكي از قابليت هاي مهم‪ MATLAB‬محسوب‬ ‫مي گردد. توابع رسم نمودار در ‪ MATLAB‬به دو‬ ‫دسته تقسيم ميشوند:‬ ‫توابع ماتريسي‬ ‫•‬ ‫توابع سمبليك‬ ‫•‬
  • 86. ‫رسم نمودار در ‪MATLAB‬‬ ‫توابع‬ ‫توابعي كه با ماتريس ها كار ميكنند و متغير ورودي‬ ‫ماتريسي‬ ‫آنها ماتريس ها هستند .‬ ‫تعدادي از توابع ماتريسي ‪ MATLAB‬عبارتند از:‬ ‫‪plot3,plot, bar,bar3,pie,pie3,contour‬‬
  • 87. ‫رسم نمودار در ‪MATLAB‬‬ ‫توابع‬ ‫توابعي كه متغيرهاي ورودي آنها به صورت سمبوليك‬ ‫سمبوليك‬ ‫يا رشته اي مي باشند.‬ ‫تعدادي از توابع سمبليك ‪ MATLAB‬عبارتند از:‬ ‫‪. ezplot,ezcontour ,ezsurf‬‬
  • 88. MATLAB ‫رسم نمودار در‬ bar-bar3h-hist-area-pie3-rose
  • 89. MATLAB ‫رسم نمودار در‬ contourf-colorbar-plot3-waterfall-contour3-mesh-surf
  • 90. ‫رسم نمودار در ‪MATLAB‬‬ ‫رسم دو‬ ‫بعدي‬ ‫تابع ‪Plot‬‬ ‫رسم نمودار هاي دوبعدي محسوب مي شود‬ ‫و امكانات زيادي را براي ويرايش تصوير در‬ ‫خروجي فراهم مي آورد.‬
  • 91. ‫رسم نمودار در ‪MATLAB‬‬ ‫نحوه ي استفاده از تابع ‪plot‬‬ ‫‪;(Handle = plot(X1,Y1,LineSpec,'PropertyName',PropertyValue‬‬ ‫در عبارت بال ، 1‪ X1,Y‬ماتري س هاي برداري هم اندازه‬ ‫هستند كه قرار است به صورت يك به يك بر روي محورهاي‬ ‫‪ X,Y‬رسم شوند.‬ ‫متغي ر ‪ LineSpec‬يك رشت ه اس ت ك ه درآن ميتوان‬ ‫خص وصيات رن گ خ ط، نوع مارك ر )به عنوان مثال مارك ر م ي-‬ ‫توان د ب ه ص ورت مرب ع وي ا س تاره باش د( و نوع خط)- ،‬ ‫-- ، : ، .-(، را تعيين نمود.‬ ‫‪ PropertyName‬شامل تمامي خواص شيئ ’‪ ‘ Line‬مي‬ ‫گردد ك ه قرار اس ت ت ا ب ا مقادي ر عددي ي ا رشته اي‬
  • 92. MATLAB ‫رسم نمودار در‬ x = -pi:pi/10:pi; ‫مثال‬ y=sin(x); h=plot(x,y, '-.r','linewidth',3);
  • 93. MATLAB ‫رسم نمودار در‬ 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')
  • 95. MATLAB ‫رسم نمودار در‬ .‫( را در بازه ي ]-01 01[ با دقت 1.0 رسم نماييد‬y=exp(x ‫نمودار تابع‬ Linewidth=2 Color=red ‘ Title=‘(y= exponential(x ‘ Xlabel=‘x ‘ Ylabel=‘(exp(x ‘*’ =Marker type
  • 96. MATLAB ‫رسم نمودار در‬ >> x=-10:.1:10; >> y=exp(x); >> a=plot(x,y,‘pr','linewidth',2) >> Title('y= exponential(x)') >> Ylabel('exp(x)') >> Xlabel('x')
  • 97. ‫رسم نمودار در ‪MATLAB‬‬ ‫جه ت تنظيم‬ ‫از تواب‪Set, get‬‬ ‫توابع ع ‪set,get‬‬ ‫…,21,'‪set(gca,'fontsize‬‬ ‫خص وصيات اشياء استفاده ميگردد.‬ ‫تاب ع ‪ set‬در اولين آرگومان ورودي‬ ‫;)’‪'FontWeight','bold‬‬ ‫خود شماره شي ء مورد نظر را‬ ‫)’‪fs=get(gca, 'fontsize‬‬ ‫دريافت كرده و در ورودي هاي ديگر‬ ‫=‪fs‬‬ ‫خود خواص و مقادير آنها را تنظيم‬ ‫مينمايد.‬ ‫21‬ ‫تابع ‪ get‬مقدار عددي يا رشته اي‬ ‫متناظر با يك خاصيت را بر ميگرداند.‬
  • 98. ‫رسم نمودار در ‪MATLAB‬‬
  • 99. ‫رسم نمودار در ‪MATLAB‬‬ ‫رسم همزمان چند منحني در يک‬ ‫نمودار‬ ‫جهت رسم چند منحني به طور هم زمان در يك نمودار ميتوان از‬ ‫تابع‪ plot‬همچون مثال زير استفاده نمود. مثال‬ ‫;1:1.:0=‪x‬‬ ‫;)‪y=exp(x‬‬ ‫;)‪z=exp(-x‬‬ ‫)’‪plot(x,y,'-.r',x,z,'—gp‬‬
  • 100. ‫رسم معرفي چند تابع‪MATLAB‬‬ ‫نمودار در مهم :‬ ‫:‪ hold‬ازاين تابع جهت رسم چند منحني بر روي يك نمودار استفاده‬ ‫ميشود.‬ ‫:‪ subplot‬از اين تابع جهت رسم چند نمودار در يك ‪ figure‬استفاده‬ ‫ميشود.‬ ‫:‪ ginput‬اين تابع براي داده برداري دستي از نمودار استفاده ميشود.‬ ‫:‪ grid‬جهت شطرنج بندي نمودار از ان استفاده ميشود.‬ ‫:‪ Semilogx,semilogy‬محورهاي‪ x,y‬را به صورت لگاريتمي در نظر‬ ‫ميگيرد.‬ ‫:‪ loglog‬هر دو محور را به صورت لگاريتمي رسم ميكند.‬ ‫‪ :Linspace‬از اين تابع براي گرفتن تعداد معيني عدد در يك بازه ي‬ ‫معين استفاده مي شود.‬
  • 101. 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
  • 102. ‫رسم نمودار در ‪MATLAB‬‬ ‫تابع ‪ ezplot‬و نحوه ي استفاده از آن‬ ‫‪ ezplot‬متغي ر ورودي خود را ب ه ص ورت س مبليك و يا‬ ‫رشته اي دريافت مي نمايد. در عبارت زير نحوه ي كار‬ ‫تابع ‪ ezplot‬بيان شده است.‬ ‫)’‪Handle = ezplot(‘function‬‬ ‫;)’)‪h=ezplot(‘tan(x‬‬
  • 103. MATLAB ‫رسم نمودار در‬ Handle=ezplot(‘function',[xmin xmax ymin ymax]) H=ezplot('y-tan(x)',[0 3*pi/2 -2*pi 2*pi])
  • 104. ‫رسم نمودار در ‪MATLAB‬‬ ‫تنظيم خصوصيات منحني‬ ‫در مثال قب ل عدد ‪ H‬امكان دستيابي به منحن ي يا دس ته منحني‬ ‫هاي رسم شده را فراهم مي آورد وبه كمك آن ميتوان تغييرات‬ ‫لزم را بر روي منحني هاي رسم شده اعمال نمود.‬ ‫‪;(’--','set(H(1),'color','r','linestyle‬‬ ‫‪;('.-','set(H(2),'linewidth',3,'linestyle‬‬
  • 105. ‫رسم نمودار در ‪MATLAB‬‬ ‫رسم سه‬ ‫‪ MATLAB‬براي ترس يم منحن ي هاي سه‬ ‫بعدي‬ ‫تواب ع زيادي در‬ ‫بعدي ب ه كار ميرون د ك ه پ ر كاربردتري ن آنه ا تابع‬ ‫3‪ ezplot3,plot‬محس وب ميشوند.اي ن تواب ع همانن د توابع‬ ‫‪ezplot,plot‬عم ل م ي كنن د ب ا اي ن تفاوت ك ه براي رسم‬ ‫منحني هاي سه بعدي پيش بيني شده اند.‬ ‫‪;(Handle = plot3(X1,Y1,LineSpec,'PropertyName',PropertyValue‬‬ ‫)]‪Handle = ezplot3( ‘funcX’,’funcY’,’funcZ’ ,[tmin,tmax‬‬
  • 106. MATLAB ‫رسم نمودار در‬ ‫مثال‬ t = 0:pi/50:10*pi ; ezplot3('sin(t)','cos(t)','t',[0,6*pi] ) plot3(sin(3*t),cos(2*t),t) grid on grid on
  • 108. ‫رسم نمودار در ‪MATLAB‬‬ ‫تابعي تعريف نماييد كه 3 متغير رشته اي را دريافت نموده ونمودار 3‬ ‫بعدي تابع مربوطه رسم نماييد.‬ ‫‪xminorgrid=on‬‬ ‫‪yminorgrid=on‬‬ ‫0 5.0 5.0[=‪[Color‬‬ ‫41=‪Fontsize‬‬ ‫1 1 0 0[=‪[position‬‬
  • 109. MATLAB ‫رسم نمودار در‬ z='tan(t)'; x='cot(t)'; y='t'; ezplot3(x,y,z) set(gca,'color',[.5 .5 1],'xminorgrid','on','yminorgrid','on','position',[0 0 1 1])
  • 110. MATLAB ‫رسم نمودار در‬ ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40) ezsurfc('y/(1 + x^2 + y^2)',[-5,5,-2*pi,2*pi]) colormap([0 0 1])
  • 111. MATLAB ‫رسم نمودار در‬ MATLAB ‫ويراست دستي نمودار د ر‬ Insert Legend Edit Plot Data cursor Show Plot Tools Pan
  • 112. ‫رسم نمودار در ‪MATLAB‬‬ ‫ويراست دستي نمودار د ر ‪MATLAB‬‬
  • 113. ‫رسم نمودار در ‪MATLAB‬‬ ‫ويراست دستي نمودار د ر ‪MATLAB‬‬
  • 114. ‫رسم نمودار در ‪MATLAB‬‬ ‫ويراست دستي نمودار د ر ‪MATLAB‬‬
  • 115. ‫رسم نمودار در ‪MATLAB‬‬ ‫ويراست دستي نمودار د ر ‪MATLAB‬‬
  • 116. ‫رسم نمودار در ‪MATLAB‬‬ ‫ويراست دستي نمودار د ر ‪MATLAB‬‬
  • 117. ‫رسم نمودار در ‪MATLAB‬‬ ‫ويراست دستي نمودار د ر ‪MATLAB‬‬
  • 118. ‫رسم نمودار در ‪MATLAB‬‬ ‫ويراست دستي نمودار د ر ‪MATLAB‬‬
  • 119. ‫رسم نمودار در ‪MATLAB‬‬ ‫ويراست دستي نمودار د ر ‪MATLAB‬‬
  • 121. ‫‪Cur ve F itting‬‬ ‫‪Polynomial curve fitting‬‬ ‫درونياب ي داده ها در نموداره ا يك ي از مس ائل مهم در علوم‬ ‫مهندس ي و رياضيات محس وب ميگردد ك ه در اي ن جا در مورد‬ ‫نحوه فيت نمودن يك منحني چندجمله اي درجه ي ‪n‬بر منحني‬ ‫تابع‪ polyfit‬بحث ميشود.‬ ‫مورد نظر،‬ ‫اي ن تاب ع متغيرماتريس ي ‪ x‬و تاب ع ماتريس ي ‪ y‬را دريافت كرده‬ ‫وضرايب يك نمودار چندجمله اي از درجه ‪n‬را كه بر منحني متناظر با‬ ‫‪ x,y‬فيت هستند به ما تحويل ميدهد.‬ ‫)‪p=polyfit(x,y,n‬‬
  • 122. ‫‪Cur ve F itting‬‬ ‫‪Polynomial curve fitting‬‬ ‫تابع‪polyval‬‬ ‫اين تابع و تابع ماتريسي ضرايب يك نمودار چندجمله اي از درجه ‪n‬و‬ ‫متغيرماتريسي ‪ x‬را دريافت كرده و مقادير ‪y‬متناظر با ماتريس ‪ x‬را‬ ‫بر ميگرداند.‬ ‫اين تابع معمول بلفاصله بعد از تابع ‪ polyfit‬به كار ميرود و براي‬ ‫شود.‬ ‫رسم داده هاي درونيابي شده استفاده مي )‪p=polyval(p,x‬‬
  • 123. Cur ve F itting Polynomial 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); .‫ فيت شده است‬Y ‫ عبارتست از ضرايب چند جمله اي درجه 3 كه بر منحني‬p ‫در اين جا ماتريس‬ [p=[-2.7195 10.6061 8.8267 1.1678 Fitted curve=-2.7x^3 + 10.6x^2 + 8.8x + 1.2
  • 125. ‫‪Cur ve F itting‬‬ ‫‪Polynomial curve fitting‬‬ ‫ادير ظرفيت حرارتي بر حسب ‪ j/kg.k‬و دما بر حسب درجه كلوين براي آهن فريتي‬ ‫لص به صورت زير داده شده است. اگرفرض گردد ‪ Cp‬در محدوده دمايي فوق از‬ ‫طي پيروي ميكند. معادله آن را بدست آوريد ونمودار آن را رسم نماييد.‬ ‫;] 967 557 996 016 125 444[ = ‪Cp‬‬ ‫;]3301 0001 008 006 054 892[ = ‪T‬‬
  • 126. Cur ve F itting Exponential curve fitting p=polyfit(T,Cp,1); p= 0.4377 327.9665 a=polyval(p,T); plot(T,Cp,‘g',T,a,'b','linewidth',2); xlabel('T (k)','fontsize',14) ylabel('Cp (j/kg.k)','FONTSIZE',14)
  • 127. ‫‪Cur ve F itting‬‬ ‫‪Exponential curve fitting‬‬ ‫براي درونيابي دادها به صورت اكسپونانسيلي از همان‬ ‫تابع ‪ polyfit‬استفاده ميشود با اين تفاوت كه دراينجا به‬ ‫جاي ماتريس‪ y = 10 ، y‬آن وارد ميشود.‬ ‫)‪f ( x‬‬ ‫لگاريتم‬ ‫فرض كني د ك ه مقادي ر تاب ع ‪ y‬قرار(‪ x ) = log‬ق‪ f‬تابعي‬ ‫) ‪ y‬اس ت طب (‬ ‫لگاريتمي به شكل‬ ‫درونيابي شود.آنگاه في ت كردن بر: روي ماتريس ‪logy‬‬ ‫در نتيج ه اگ ر عم ل ميتوان نوشت‬ ‫صورت گيرد تابع ‪ (f(x‬بدست مي آيد و ميتوان به كمك‬ ‫ان تابع ‪ y‬را هم بدست آورد.‬
  • 129. Cur ve F itting Polynomial curve fitting . ‫( مي باشد‬y=exp(a*x^2 + b*x +c ‫اعداد زير مربوط به تابع‬ .‫را بدست آوريد‬a,b,c ‫ضرايب‬
  • 130. Cur ve F itting Exponential curve fitting Plot(data(:,1),data(:,3))
  • 131. Cur ve F itting 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);
  • 132. D ata D ata I mpor t and E xpor t I mpor t and E xpor t
  • 133. ‫‪Data Impor t and E xpor t‬‬ ‫‪D ata‬‬ ‫‪I mpor t‬‬ ‫‪and‬‬ ‫زير فرمت فايل هايي كه ‪ matlab‬ميتواند بخواند يا بنويسد‬‫‪E xpor t‬جدول‬ ‫را به هراه توابعي كه هر فرمت را پشتيباني ميكنند نشان ميدهد‬
  • 134. ‫‪Data Impor t and E xpor t‬‬ ‫‪D ata‬‬ ‫‪Import text data file‬‬ ‫‪I mpor t‬‬ ‫‪and‬‬ ‫‪E xpor t‬‬ ‫ما براي سادگي كار روند مرحله به مرحله )ويزارد( خواندن يك فايل‬ ‫متني كه حاوي داده هاي دستگاه ‪ DSC‬است را بررسي ميكنيم.‬
  • 135. Data Impor t and E xpor t D ata Import text data file I mpor t and E xpor t
  • 136. Data Impor t and E xpor t D ata Import text data file I mpor t and E xpor t
  • 137. Data Impor t and E xpor t D ata Import text data file I mpor t and E xpor t
  • 138. ‫‪Data Impor t and E xpor t‬‬ ‫‪D ata‬‬ ‫‪Import text data file‬‬ ‫‪I mpor t‬‬ ‫‪and‬‬ ‫‪E xpor t‬‬ ‫پس از طي مراحل ويزارد داده هاي انتخاب شده‬ ‫از فايل مورد نظر درون فضاي كاري نرم افزار‬ ‫توليد شده و قابل دسترسي خواهند بود.‬ ‫•روال گام به گام ذكر شده براي كليه فرمت هايي‬ ‫كه ‪ matlab‬از آن ها پشتيباني ميكند قابل انجام‬ ‫است.‬
  • 139. ‫‪Data Impor t and E xpor t‬‬ ‫‪D ata‬‬ ‫‪Export matlab file‬‬ ‫‪I mpor t‬‬ ‫‪and‬‬ ‫‪E xpor t‬‬ ‫‪ MATLAB‬قادر است تا نتايج فعاليت هاي خود را به صورت هاي‬ ‫مختلف ذخيره سازي نمايد كه اين كار را به كمك توابع خاصي كه‬ ‫براي هر نوع فرمت خاص تعيين شده اند انجام ميدهد.‬ ‫از جملنه مهمترين عمليات ‪ export‬در ‪ ، matlab‬ذخير ه‬ ‫سازي به طر يق ايجاد فا يل مت ني، ذخيره سازي ت صوير با‬ ‫پس وند هاي مختل ف، ذخيره س ازي داده ه ا ب ه صورت‬ ‫فاي ل نرم افزار ‪ ، excel‬ذخيره س ازي تص اوير متحرك با‬ ‫پسوند .‪ avi‬و ... ميباشد.‬
  • 140. ‫‪Data Impor t and E xpor t‬‬ ‫‪D ata‬‬ ‫‪Export matlab file‬‬ ‫‪I mpor t‬‬ ‫‪and‬‬ ‫‪E xpor t‬‬ ‫‪ MATLAB‬قادر است كه اطلعات موجود در فضاي كاري خود را‬ ‫به صورت فايلي با پسوند مخصوص به خود ذخيره كند) .‪ ( mat‬تا‬ ‫بتوان در آينده از آن ها استفاده نمود.‬ ‫براي ذخيره كردن اطلعات ب ه شك ل “م ت فاي ل” از تابع ‪save‬‬ ‫استفاده ميشود.‬ ‫)'2‪save ('path', 'var1', 'var‬‬ ‫در عبارت بال اولي ن آرگومان )‪(path‬مس ير مورد نظر براي ذخيره‬ ‫كردن را تعيين كرده و آرگومان هاي ديگر متغير هايي كه نياز است تا‬ ‫نگهداري شوند را تعيين مي كنند.‬
  • 141. ‫‪Data Impor t and E xpor t‬‬ ‫‪D ata‬‬ ‫‪Export matlab file‬‬ ‫‪I mpor t‬‬ ‫‪and‬‬ ‫‪E xpor t‬‬ ‫در اگر تابع ‪ save‬به شكل مقابل به كار رود، كليه‬ ‫)'‪save ('path‬‬ ‫متغير هاي موجود در فضاي كاري، در مسير مورد‬ ‫نظر نوشته ميشوند.‬ ‫در حالتي كه تابع ‪ save‬بدون ارگومان ورودي به‬ ‫‪save‬‬ ‫كار رود كلي ه متغي ر هاي موجود در مسير جاري‬ ‫‪) matlab‬مسير پيش فرض( نوشته ميشوند.‬
  • 143. ‫‪Cur ve F itting‬‬ ‫‪Import matlab file‬‬ ‫ل متني با نام ‪ dsc.txt‬را از روي ‪ desctop‬به محيط ‪ matlab‬وارد كرده‬ ‫نحني ‪dh/dt‬بر حسب زمان را رسم نماييد.‬ ‫‌‬
  • 144. ‫‪Data Impor t and E xpor t‬‬ ‫‪D ata‬‬ ‫‪import matlab file‬‬ ‫‪I mpor t‬‬ ‫‪and‬‬ ‫‪E xpor t‬‬ ‫در اگر تابع ‪ load‬به شكل مقابل به كار رود، كليه‬ ‫)'‪A=load ('path‬‬ ‫متغي ر هاي موجود در فاي ل ‪‌ path‬با پسوند ‪mat‬‬ ‫داخل متغير ساختاري ‪ A‬ميشود.‬ ‫در حالتي كه تابع ‪ load‬به شكل مقابل به كار رود،‬ ‫‪Load path‬‬ ‫كليه متغير هاي موجود در مسير ‪ path‬به همان‬ ‫صورت وارد محيط كاري ميشوند.‬
  • 145. Data Impor t and E xpor t D ata import file I mpor t and E xpor t A=load (‘filename‘,’format’) Read data from text file; fid=textread(‘d:Mohsennecessary informations.txt','%s') 'sutaspire@googlegroups.com' '--------------------------------' 'ETS' 'ID:3516769' 'user:moosavinezhad' 'pass:Smoosavi2919'
  • 146. ‫پنجره هاي‬ ‫كنترلي‬
  • 147. ‫پنجره هاي كنترلي‬ Inputdlg answer = inputdlg(prompt) a=inputdlg('Please input your name') a= 'Mohsen' >> whos a Name Size Bytes Class a 1x1 72 cell array Grand total is 7 elements using 72 bytes
  • 148. ‫پنجره هاي كنترلي‬ Inputdlg answer = inputdlg(prompt,dlg_title,num_lines,defAns) >> 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 array Grand total is 13 elements using 84 bytes
  • 150. ‫پنجره هاي كنترلي‬ ‫پنجره اي كنترل ي ايحاد كني د ك ه تابعي را از كاربر‬ ‫بگيرد.‬ ‫’:‪Prompt=‘Plaese input function name‬‬ ‫’‪Title=‘Input Function‬‬ ‫1=‪num_line‬‬ ‫’2^‪Def_ans=‘x‬‬ ‫در بازه ]0 001[ رسم‬ ‫ابع 3^‪ (log10(x‬را به كمك اين پنجره و سپس به كمك تابع ‪ezplot‬‬
  • 151. ‫پنجره هاي كنترلي‬ answer = inputdlg('Plaese input function name:','Input Function',1,{'x^2'}) answer = 'log10(x^3)' >> ezplot(char(answer),[0 100])
  • 152. ‫پنجره هاي كنترلي‬ 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)));
  • 153. ‫پنجره هاي كنترلي‬ 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');
  • 155. ‫پنجره هاي كنترلي‬ ‫را به‬ ‫پنجره اي كنتر لي ايحاد كن يد كه مقاد ير ‪x,y‬‬ ‫صورت عددي از كاربر دريافت كند.‬ ‫سپس به ك مك پنجره كنتر لي ‪ msgbox‬ضرا يب معادله‬ ‫در جه 2 را كه بر آن ف يت ميشود به كاربر نشان‬ ‫دهيد.‬ ‫}'‪Prompt= {'Input x','input y‬‬ ‫’‪Title=‘Input Function‬‬ ‫1=‪num_line‬‬ ‫)}']01 8 6 4 2[',']5 4 3 2 1['{= ‪Def_ans‬‬
  • 156. ‫پنجره هاي كنترلي‬ >> answer = inputdlg({'Input x','input y'},'Input Function',... 1,{'[1 2 3 4 5]','[2 4 6 8 10]'}); >> x=str2num(char(answer(1))); >> y=str2num(char(answer(2))); >> p=polyfit(x,y,2); >> message=strcat('Coefficient for linear fitting curve is:[', num2str(p), ']'); >> msgbox(message,’Coefficient of fitted curve’)
  • 157. Symboli c M ath
  • 158. ‫‪Symbolic math‬‬ ‫‪Introduction‬‬ ‫رياص يات س مبليك بخش ي از ‪ matlab‬اس ت ك ه در آ ن ب ه محاس بات ب ه صورت‬ ‫سمبوليك وب ه كم ك نماده ا ص ورت م ي گيرد. جعب ه ابزار رياضيات سمبليك‬ ‫مكمل بخش محاسبات عددي ‪ matlab‬محسوب ميشود.‬
  • 159. ‫‪Symbolic math‬‬ ‫‪Introduction‬‬ ‫جعبه ابزار رياصيات سمبليك نوع جديدي از داده ها به نام اشيا سمبليك را تعريف‬ ‫مي كند . يك شيي سمبوليك يك داده محسوب ميشود كه يك رشته را به عنوان‬ ‫يك نماد در خود ذخيره ميكند. اين جعبه ابزار به كمك اشيا سمبليك متغيرها،‬ ‫عبارات و ماتريس هاي سمبليك را نمايش ميدهد.‬ ‫چگونه ميتوان يك متغير سمبليك تعريف كرد؟‬ ‫به كمك توابع ‪ sym , syms‬ميتوان متغيرهاي سمبليك تعريف نمود.‬
  • 160. Symbolic math Introduction ‫ يك رشته را به عنوان ورودي دريافت كرده و يك خروجي‬sym ‫تابع‬ syms ‫از نوع سمبليك به ما ميدهد. براي سادگي ميتوان از عبارت‬ a=sym('alpha') .‫ استفاده نمود‬sym ‫به جاي‬ a =alpha b=a^2 a = sqrt(sym(2^2)); b= b=2; alpha^2 whos a b Name Size Bytes Class a 1x1 126 sym object b 1x1 8 double array Grand total is 2 elements using 126 bytes
  • 161. Symbolic math Introduction subs ‫تابع‬ ‫ اين امكان را به ما ميدهد تا در يك عبارت به جاي مقدار سمبليك يك‬subs ‫تابع‬ .‫عدد را جايگزين كنيم‬ syms x y z=y*sin(x); syms a b z1=subs(z,x,pi/2) f=subs(cos(a)+sin(b),{a,b},{sym('alpha'),pi}) z1= f= y cos(alpha)
  • 163. ‫‪Symbolic math‬‬ ‫مقادير‬ ‫ازاي‬ ‫ب ه‬ ‫‪ (z=atan(x*y)-exp(y‬را‬ ‫تاب ع‬ ‫2=‪ x=1,y‬بدست آوريد.‬ ‫منحني اين تابع را به ازاي 01:1=‪ x=1:10;y‬رسم كنيد.‬
  • 164. Symbolic math x=1:10; syms x y y=10:10:100; z=atan(x*y) - exp(y); z=subs(z,{x,y}, f=subs(z,{x,y},{1,2}) {1:10,10:10:100}); f= X1=1:10; -6.2819 Y1=10:10:100; Plot3(x1,y1,z)
  • 165. Symbolic Math Symbolic Math functions Calculus The Symbolic Math Toolbox provides functions to do the basic operations of calculus. The following sections describe these functions Differentiation Limits Integration Symbolic Summation Taylor Series Jacobian
  • 166. Symbolic Math Symbolic Math functions Calculu s Differentiation Examples Assume syms x t Then diff(sin(x^2)) returns 2*cos(x^2)*x and diff(t^6,6) returns 720
  • 167. Symbolic Math Symbolic Math functions Calculu s limit Examples Assume syms x a t h; Then limit(sin(x)/x) => 1 limit(1/x,x,0,'right') => inf limit(1/x,x,0,'left') => -inf limit((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]
  • 168. Symbolic Math Symbolic Math functions Calculu s integration Examples int(-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/4 int(2*x, sin(t), 1) returns 1-sin(t)^2 int([exp(t),exp(alpha*t)]) returns [exp(t), 1/alpha*exp(alpha*t)]
  • 169. Symbolic Math Symbolic Math functions Simplifications Substitution s f = x^3-6*x^2+11*x-6 g = (x-1)*(x-2)*(x-3) h = -6+(11+(-6+x)*x)*x pretty(f), pretty(g), pretty(h) x3 - 6 x2 + 11 x - 6 (x - 1) (x - 2) (x - 3) -6 + (11 + (-6 + x) x) x
  • 170. Symbolic Math Symbolic Math functions Simplifications Substitution s 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.
  • 171. Symbolic Math Symbolic Math functions Simplifications Substitution s 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
  • 172. Symbolic Math Symbolic Math functions Simplifications Substitution s
  • 173. Symbolic Math Symbolic Math functions Simplifications Substitution s simplify Symbolic simplification R = simplify(S) simplify(S) simplifies each element of the symbolic matrix S using Maple simplification rules
  • 174. Symbolic Math Symbolic Math functions Integral Transforms fourier
  • 175. Symbolic Math Symbolic Math functions Integral Transforms ifourier
  • 176. Symbolic Math Symbolic Math functions 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) specified by eq1, eq2,... using v as the independent variable and the boundary and/or initial condition(s) specified by cond1,cond2,....
  • 177. Symbolic Math Symbolic Math functions Solution of Equations 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)
  • 178. Symbolic Math Symbolic Math functions 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
  • 179. Symbolic Math Symbolic Math functions 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
  • 180. Symbolic Math Symbolic Math functions 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)
  • 182. ‫‪Symbolic math‬‬ ‫و بازه رسم‬ ‫تابعي بنويسيد كه دوتابع با نام هاي ‪fx,gx‬‬ ‫و‬ ‫آن ه ا را درياف ت كرده وسپس ‪(f(gx), g(fx‬‬ ‫‪ fx/gx,fx*gx‬را در آن بازه به كمك تا بع ‪ subplot‬دريك‬ ‫‪ figure‬رسم نمايد.‬
  • 183. Symbolic math function plotted(fx,gx,domain) syms x fx=sym(fx); ‫تعاريف‬ gx=sym(gx); fgx=subs(fx,x,gx); subplot(2,2,1); f(g(x)) ezplot(fgx,domain) fgx=subs(gx,x,fx); subplot(2,2,2); g(f(x)) ezplot(gfx,domain) fog=fx/gx; subplot(2,2,3); f(x)/g(x) ezplot(fog,domain) fmg=fx*gx; subplot(2,2,4); g(x)*f(x) ezplot(fmg,domain)