پروژه باز

یادگیری ، تجربه عملی ، ساخت پروژه

۳ مطلب با کلمه‌ی کلیدی «matlab» ثبت شده است

کلاس دوم متلب

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

>>

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

۱۰ فروردين ۹۴ ، ۱۳:۱۲ ۰ نظر موافقین ۰ مخالفین ۰
محمد مهدی چیذری

کلاس اول متلب

بسمه تعالی

 

آموزش نرم افزار متلب به صورت کاربردی در جلسات مختلف روی سایت قرار خواهد گرفت . این مطالب برای آموزش جزیی تمامی نکات مطلب نیامده است تا از زیاد شدن حجم مطالب و گسسته شدن ذهن خواننده جلوگیری کند . بنابر این انتظار می رود خودتان با تلاش و انجام کار های عملی اطلاعاتتان را پیرامون مطالبی که در به آنها فقط اشاره شده است تکمیل کنید.

 

کلاس 1

گام 1 :

 آشنایی با محیط نرم افزار :

در تصویر زیر اجزای مختلف نرم افزار را مشاهده می کنیم


و در شمایی نزدیکتر :


1 : پنجره ایجاد فایل

2 : پنجره فضای کار

3 : باز کردن محیط سیمولینک ( در جلسات بعد توضیح  داده خواهد   شد)

4 : پنجره تنظیمات متلب

5 : راهنمای متلب

6 : مرورگر فایل

7 : command window ؛ جایی که قرار است کدها در آن نوشته شوند

8 :  پنجره فضای کار

9 :command history  ؛ تاریخچه دستورات استفاده شده

 

 

گام 2 :

اولین برنامه در متلب :

دستورات زیر را طبق تصویر زیر در پنجره command window وارد کنید و نتیجه را مشاهده کنید.


همانطور که مشاهده می کنید متغیر های استفاده شده و آخرین مقادیرشان در پنجره workspace  و آخرین دستورات استفاده شده در command history  قابل دسترسی و مشاهده اند. ( سعی کنید با کار کردن با آنها خودتان روش های استفاده از این دو پنجره و محتویات آنها را خودتان کشف کنید ! )



گام سوم :

پاک کردن محیط command window   از روابط اضافه :

معمولا پس از محاسبات طولانی پنجره command window  پر می شود از مواردی که شاید به آنها نیازی نداشته باشیم ، بنا بر این برای این که در محیطی خلوت تر کد بزنیم از دستور clc  استفاده می کنیم . اثر این دستور را در ادامه برنامه ای که نوشتید مشاهده کنید. توجه کنید که این دستور فقط از لحاظ ظاهری محیط را پاک می کند و متغیر ها و مقادیرشان پایدار می مانند.



گام چهارم :

حذف کردن متغیر ها :

فرض کنید متغیری به نام a  تعریف کرده ایم و بخواهیم به هر دلیلی آن را حذف کنیم ( مثلا    از نوع integer  بوده و می خواهیم آن را به string  تبدیل کنیم ) برای این کار از دستور clear a استفاده می کنیم . اگر بخواهیم تمام متغیر های برنامه حذف شوند از clear all  استفاده خواهیم کرد . تاثیر این دستور ها را روی برنامه ی قبلی از طریق دنبال کردن پنجره workspace  بررسی کنید.




گام پنجم :

استفاده از " ؛ " :

برنامه زیر را در نظر بگیرید :

اگر بعد از نوشتن کد از “;”   استفاده شود دیگر پس از وارد کردن آن مقادیر آن دوباره نشان داده نمی شوند . در تصویر بالا تاثیر “;” را می توانید مشاهده کنید .

A : از 0 تا 5 به فاصله هر 0.5 تا آرایه از اعداد تشکیل می دهد.

 

گام 6 :

رسم نمودار و بستن پنجره آن :

با استفاده از دستور plot  می توانیم نمودار رسم کنیم ( در قسمت های بعد مفصل توضیح داده خواهد شد ) . در مثال زیر تابع y  بر حسب x  رسم شده است .





برای بستن پنجره نمودار به صورت غیر دستی می توان از دستور close  استفاده کرد . برای بستن چندین نمودار از close all  استفاده می کنیم.



گام 7 :

عملگر های اصلی :

به تصویر زیر توجه کنید






ابتدا ماتریس A   و    سپس ماتریس B  را تعریف کرده ایم .

برای این که تک تک مقادیر A را بر B   تقسیم کنیم باید به جای / از / .  استفاده کنیم وگرنه ضرب و تقسیمِ ماتریسی انجام خواهد گرفت .

 

گام 8 :

استفاده از توابع در متلب


گام 9 :

استفاده از syms   expand , pretty,  :

با syms  می توان متغیری را تعریف کرد و گاها بدون مقدار دهی آن محاسباتی را روی آن انجام داد.

با دستور expand  می توان فرم گسترش یافته ی یک عبارت را یافت

با دستور pretty  می توان شمایی واقعی تر و قابل فهم تر از یک عبارت به دست آورد


گام 10 : استفاده از m-file ها :


در متلب محیطی وجود دارد ب که در آن می توان ابتدا تمام کد را نوشته سپس به دفعات آن کد را اجرا کرد. برای شروع کار با m-file  مانند تصویر زیر بر روی گزینه new script  کلیک کنید تا پنجره محیط برنامه نویسی برای شما باز شود. 

در این محیط فایل ذخیره شده ای ( untitled  ) برای شما ساخته می شود . در ابتدا اقدام به ذخیره کردن آن کنید . ما test1 را روی آن نامگذاری کرده ایم.


در ادامه می توانید کد مورد نظرتان را مانند تصویر زیر بنویسید :

1:  از Ctrl + R برای کامنت کردن یک خط و از Ctrl + T برای در آوردن یک قسمت از حالت کامنت استفاده کنید.

2:  F5 برای اجرای کامل کد استفاده می شود

3 : اگر از %% ها بین کد ها استفاده کردید و هر قسمت مربوط به یک کد است ، برای اجرای هر قسمت از Ctrl + Enter  استفاده کنید .


گام 11 :

راهنمای متلب :

نرم افزار متلب راهنمای بسیار غنی ای دارد و روش های متعددی برای استفاده از آن موجود است.

برای مثال در پنجره command window  روی هر کلمه ای که روی آن قرار داشته باشید و F1  را فشار دهید راهنمای آن دستور باز می شود. می توانید مثال های بسیار کاربردی با نتایج آنها را در این قسمت مشاهده کنید .


 

یا  از عبارت help “something” استفاده کنید



راه دیگر استفاده از خود پنجره متلب و جستجو در آنجاست

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

Mathworks.com

 

 

 

 

 

۰۹ فروردين ۹۴ ، ۱۵:۳۵ ۰ نظر موافقین ۰ مخالفین ۰
محمد مهدی چیذری

پروژه باز

Projebaz

electronic amali

matlab

project bank

۰۹ فروردين ۹۴ ، ۰۱:۵۸ ۰ نظر
محمد مهدی چیذری