m-file

 

برای راحتی در استفاده از کدهای مثالهای زیر . فایل m-file   را می توانید از لینک زیر دانلود بکنید. روش استفاده از آن هم در قسمت قبل و مثال زیر شرح داده شده است.

دانلود فایل جلسه 2

 

تقسیم بندی محیط m-file   با استفاده از   %%   ها.

هر قسمت به صورت مجزا با Ctrl+Enter    قابل اجرا کردن هست.

در این مثال فقط قسمت دوم اجرا شده است

clc

clear all

close all

 

a = 10 ;

b = 11 ;

c = a + b

 

%%

 

clc

clear all

close all

 

a = 15 ;

b = [1 2 3 4]

 

 

 

 

 

 

 

 

 

b =

     1     2     3     4

>>

 

 

ماتریس های خاص

 

 

ابتدا به معرفی تعدادی از پرکاربردترین ماتریس ها در متلب می پردازیم :

دستور zeros   برای ایجاد ماتریسی از صفرها به کار می رود.

zeros

clc

clear all

close all

 

zeros (5)

 

zeros (3 , 4)

 

ans =

 

     0     0     0     0     0

     0     0     0     0     0

     0     0     0     0     0

     0     0     0     0     0

     0     0     0     0     0

 

 

ans =

 

     0     0     0     0

     0     0     0     0

     0     0     0     0

 

>>

 

دستور eyeماتریسی قطری دارای قطر 1 ایجاد می کند .

eye

clc

clear all

close all

 

eye (5)

eye (3 , 4)

 

ans =

     1     0     0     0     0

     0     1     0     0     0

     0     0     1     0     0

     0     0     0     1     0

     0     0     0     0     1

ans =

     1     0     0     0

     0     1     0     0

     0     0     1     0

 

اگر برای وارد کردن برنامه به انتهای سطری رسیدیم ولی عبارت تمام نشده بود می توان از ... استفاده کرد و در خط بعد عبارت را ادامه داد.

ایجاد ماتریس

استفاده از   . . .

به دست آوردن مقادیر روی قطر یک ماتریس با diag

ایجاد ماتریس قطری با دستور diag

clc

clear all

close all

 

A = [ 1:3 ; 3:5 ; 6:8]

diag (A)

B = [ 1 2 3 4

    5 6 7 8 ]

در حالت ماتریسی دارای دو سطر ایجاد می شود

 

C = [ 1 2 3 4 ...

    5 6 7 8 ]

در ای حالت با استفاده از   ...    نشان می دهیم که سطر قبلی ادامه دارد و هنوز تمام نشده ، بنابراین ماتریس یک سطر دارد.

 

diag (C)

 

A =

     1     2     3

     3     4     5

     6     7     8

ans =

     1

     4

     8

B =

     1     2     3     4

     5     6     7     8

C =

     1     2     3     4     5     6     7     8

ans =

     1     0     0     0     0     0     0     0

     0     2     0     0     0     0     0     0

     0     0     3     0     0     0     0     0

     0     0     0     4     0     0     0     0

     0     0     0     0     5     0     0     0

     0     0     0     0     0     6     0     0

     0     0     0     0     0     0     7     0

     0     0     0     0     0     0     0     8

 

دستور  rand  برای ایجاد اعداد تصادفی بین 0 تا 1 به کار می رود. همچینین می توان به کمک دستور size  ابعاد یک ماتریس را به دست آورد.

rand

size

clc

clear all

close all

 

A = [ 1 2 3 4 ; 2 3 4 5];

size(A)

rand (size(A))

rand (4)

5*rand(2,3)+ 13

randi(100,2,2)

randn(2,4)

 

ans =

     2     4

ans =

    0.3704    0.4818    0.6914    0.5123

    0.3774    0.7956    0.8498    0.8550

ans =

    0.4654    0.5412    0.2922    0.8918

    0.2648    0.3933    0.0073    0.4208

    0.6295    0.4205    0.9327    0.4002

    0.5627    0.1371    0.6093    0.5539

ans =

   15.9813   15.9360   16.8080

   15.5314   13.6641   16.2557

ans =

    36    28

    32    15

ans =

   -0.2482   -1.5636   -0.0241   -0.2872

    1.1934   -1.7452   -1.3482   -0.7513

 

توابع مهم به دست آمده از یک ماتریس

 

با استفاده از یک در کنار اسم ماتریس می توان ترانهاده آن را به دست آورد. برای مثال A’ .  دستور inv   می تواند معکوس یک ماتریس مربعی را حساب کند . در ضمن می توان آن ماتریس را به توان -1 رسانید. ضرب

ماتریسی با * و ضرب عددی با * .  انجام پذیر است. در ضمن مقادیر ویژه از روی eig  به دست می آیند.

Inv

Det

eig

A = [ 1 2 3  ; 5 6 7 ]

B = [ 5 9 10 ; 7 8 9 ;2 3 4]

 

A'

inv(B)

B^-1

det(B)

A*B

A.*A

[m,n] = eig(B)

 

A =

     1     2     3

     5     6     7

B =

     5     9    10

     7     8     9

     2     3     4

ans =

     1     5

     2     6

     3     7

ans =

   -0.3333    0.4000   -0.0667

    0.6667    0.0000   -1.6667

   -0.3333   -0.2000    1.5333

ans =

   -0.3333    0.4000   -0.0667

    0.6667    0.0000   -1.6667

   -0.3333   -0.2000    1.5333

ans =

  -15.0000

ans =

    25    34    40

    81   114   132

ans =

     1     4     9

    25    36    49

m =

   -0.6739   -0.7757   -0.1525

   -0.6965    0.6283   -0.6999

   -0.2463   -0.0605    0.6978

n =

   17.9559         0         0

         0   -1.5094         0

         0         0    0.5535

 

انتخاب قسمت دلخواه از یک ماتریس

ایجاد بازه عددی

 

 

دستور linspace(a,b,n) به تعداد n   عدد به صورت خطی بین دو عدد a   و b ایجاد می کند . دستور logspace  این کار را به صورت عددهای لگاریتمی بین دو عدد نام برده انجام می دهد.

Linspace

logspace

clc

clear all

close all

L = linspace(1,2,5)

G = logspace(0,10,3)

A = [0:1:3

    10:1:13

    20:1:23]'

P = A (2,3)

B = A (2:3 , : )

C = A (2:4, 3)

D = A (1 , :)

E = A ([1 2],[2 3])

L =

    1.0000    1.2500    1.5000    1.7500    2.0000

G =

   1.0e+10 *

    0.0000    0.0000    1.0000

A =

     0    10    20

     1    11    21

     2    12    22

     3    13    23

P =

    21

B =

     1    11    21

     2    12    22

C =

    21

    22

    23

D =

     0    10    20

E =

    10    20

    11    21

 

اندازه ماتریس

 

 

با دستور length  طول یک ماتریس را به دست می آوریم.

size

lenght

clc

clear all

close all

 

A = [ 5 9 10 ; 7 8 9 ;2 3 4]

B = size(A)

N = 1:.1:115;

length(N)

 

 

A =

     5     9    10

     7     8     9

     2     3     4

B =

     3     3

ans =

        1141

>>

 

 

جمع ، ضرب ، ترتیب ، بیشترین ، کمترین و میانگین ماتریس

 

 

جمع زدن ستون های یک ماتریس m*n با دستور sum  انجام می پذیرد.

همچنین اگر ماتریس تنها یک سطر باشد تمام عناصر سطر آن با هم جمع زده می شوند.

sum

clc

clear all

close all

 

A = [ 5 9 10 ; 7 8 9 ;2 3 4]

B = sum (A)

در ای حالت ستون ها با هم جمع زده می شوند

 

C = 1:10

D = sum(C)

در ای حالت کل عناصر روی سطر با هم جمع زده می شوند.

 

 

 

A =

     5     9    10

     7     8     9

     2     3     4

B =

    14    20    23

C =

     1     2     3     4     5     6     7     8     9    10

D =

    55

>>

 

 

مرتب کردن خانه های یک ماتریس

sort

clc

clear all

close all

 

A = [ 5 9 10 ; 7 8 9 ;2 3 4]

B = sort (A)

C = rand(1,5)

D = sort(C)

 

A =

     5     9    10

     7     8     9

     2     3     4

B =

    70   216   360

C =

     1     2     3     4     5     6     7     8     9    10

D =

     3628800

>>

 

 

پیدا کردن بزرگترین عدد

max

clc

clear all

close all

 

A = [ 5 9 10 ; 7 8 9 ;2 3 4]

B = max (A)

Bmax = max(max(A))

C = [2 3 24 3 92.1 12]

D = max(C)

 

 

A =

     5     9    10

     7     8     9

     2     3     4

B =

     7     9    10

Bmax =

    10

C =

    2.0000    3.0000   24.0000    3.0000   92.1000   12.0000

D =

   92.1000

>>

 

 

پیدا کردن کوچکترین عدد

min

clc

clear all

close all

 

A = [ 5 9 10 ; 7 8 9 ;2 3 4]

B = min (A)

Bmin = min(min(A))

C = [2 3 24 3 92.1 12]

D = min(C)

 

A =

     5     9    10

     7     8     9

     2     3     4

B =

     2     3     4

Bmin =

     2

C =

    2.0000    3.0000   24.0000    3.0000   92.1000   12.0000

D =

     2

>>

 

 

پیدا کردن میانگین عددها

mean

clc

clear all

close all

 

A = [ 5 9 10 ; 7 8 9 ;2 3 4]

B = mean (A)

C = [2 3 24 3 92.1 12]

D = mean(C)

 

A =

     5     9    10

     7     8     9

     2     3     4

B =

    4.6667    6.6667    7.6667

C =

    2.0000    3.0000   24.0000    3.0000   92.1000   12.0000

D =

   22.6833

>>

 

 

جهت دهی به ماتریس

 

معکوس کردن نسبت به محور افقی

flipud

flipdim

clc

clear all

close all

 

 

A = [ 1 2 3 ; 4 5 6 ;7 8 9]

B = flipud(A)

C = flipdim(A,2)

 

A =

     1     2     3

     4     5     6

     7     8     9

B =

     7     8     9

     4     5     6

     1     2     3

C =

     3     2     1

     6     5     4

     9     8     7

>>

 

 

معکوس کردن نسبت به محور عمودی

fliplr

flipdim

clc

clear all

close all

 

A = [ 1 2 3 ; 4 5 6 ;7 8 9]

D = fliplr(A)

E = flipdim(A,1)

 

A =

     1     2     3

     4     5     6

     7     8     9

D =

     3     2     1

     6     5     4

     9     8     7

E =

     7     8     9

     4     5     6

     1     2     3

>>

 

 

چرخاندن ماتریس به مقادیر 90 درجه ای

rot90

clc

clear all

close all

 

A = [ 1 2 3 ; 4 5 6 ;7 8 9]

F = rot90(A)

G = rot90(A,2)

 

A =

     1     2     3

     4     5     6

     7     8     9

F =

     3     6     9

     2     5     8

     1     4     7

G =

     9     8     7

     6     5     4

     3     2     1

 

>>

 

 

اعداد خاص در متلب

 

 

inf

eps

realmax

realmin

NaN

0/0

clc

clear all

close all

 

C=inf

D=eps

E=realmax

F=realmin

G=NaN

H=0/0

 

 

C =

   Inf

D =

   2.2204e-16

E =

  1.7977e+308

F =

  2.2251e-308

G =

   NaN

H =

   NaN

>>

 

 

پیوند دادن ماتریس ها

 

ترانهاده ی یک ماتریس

A’

clc

clear all

close all

 

A=[1 2;3 4]

B=[5 6;7 8]

C=[A B]

D=[A B]'

 

A =

     1     2

     3     4

B =

     5     6

     7     8

 

C =

     1     2     5     6

     3     4     7     8

D =

     1     3

     2     4

     5     7

     6     8

>>

 

 

با دستور repmat   می توان یک ماتریس بزرگتر از کنار هم قرار دادن ماتریس داده شده ایجاد کرد.

repmat

clc

clear all

close all

 

 

A=[1 2;3 4]

B=repmat(A,2,3)

 

A =

     1     2

     3     4

B =

     1     2     1     2     1     2

     3     4     3     4     3     4

     1     2     1     2     1     2

     3     4     3     4     3     4

>>

 

 

 

 

کپی برداری از کلیه مطالب بدون ذکر منبع ممنوع می باشد