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

از این چیزها فقط در راه رضای خدا استفاده کنید.

توجه:روند آموزش به این گونه است که یک مثال را به همراه توضیحاتش می نویسم

چند دستور :

توجه کنید که تمام دستورات رزو شده در متلب را باید با حروف کوچک تایپ کنید و از آنها به عنوان متغیر استفاده نکنید

متلب بین حروف کوچک وبزرگ تمایز قائل است

اگر بخواهیم یک متن را در یک متغیر ذخیره کنیم آنرا درون کوتیشن قرار میدهیم

مثال

m='123ghy'

m =

123ghy

1- دستور

clc

عبارات موجود در

Command windows

را پاک میکند ولی این عبارات در

Command history

قابل دسترسی است

2- دستور

clear

تمام متغیرهای موجود در

Workspace

را پاک میکند اگر میخواهید فقط یک یا چند متغیر خاص را پاک کنید  بصورت زیر عمل کنید

clearمتغیر2  متغیر1 …..

مثال clear m1 m2

3-دستور انتساب

مقدار=نام متغیر

4-دستور زیر نام متغیرهای موجود را نشان می دهد

who

5-دستور زیر نام متغیرهای موجود و سایر جزییاتش را نشان می دهد

whos

 

;

eps

realmin

realmax

i وj و1i و 1j

pi

exp(1)

nan

inf

-inf

+inf

which نام برنامه

سمیکالون

اپسیلون

کوچکترین عدد حقیقی که کامپیوتر می شناسد

بزرگترین عدد حقیقی که کامپیوتر می شناسد

 

یا

0+1i

عدد پی

عدد نپر

تعریف نشده

بی نهایت

منفی بی نهایت

مثبت بی نهایت

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

 

ایجاد تابع

برای شروع بر روی

New script

کلیک کنید تا

Editor

باز شود.یا به مسیر زیر بروید

File > new > blank M-File

 

شکل کلی توابع به صورت زیر است

function  [خروجی3, خروجی2, خروجی1, …] =name( ورودی2, ورودی1, … )

                                          دستورات

end

ورودی ها به عنوان متغیر محلی شناخته میشوند یعنی فقط در همین تابع شناخته میشوند.

مثال 1

تابع مساحت دایره

 function s=masahat_dayere(r)

s=pi*r*r ;

end

این سه خط را در محیط

Editor

تایپ کنید و بر روی

Save

کلیک کنید و با همان نامی که برای تابع انتخاب کرده اید آنرا ذخیره کنید

توضیحات

1-تابع با یک ورودی (شعاع) و یک خروجی(مساحت) است

2-خط دوم فرمول مساحت دایره است که مقدار خروجی را میدهد

3- عبارت = دستور انتساب است که مقدار سمت راست را در متغیری با نام موجود در  سمت چپش ذخیره میکند

4- استفاده از سمیکالون موجب میشود که متلب آن متغیر را در

Command windows

نشان ندهد و با برداشتن سمیکالون متلب آنرا نشان میدهد که باعث کاهش سرعت برنامه میشود

5-برای اجرای برنامه از دستور

masahat_dayere(r)

استفاده کنید مثلا

masahat_dayere(1.235)      (در کامنت ویندوز تایپ کنید و اینتر بزنید تا نتیجه را ببینید)

ans =

    4.7916

چون در اینجا از = استفاده نکرده ایم متلب جواب را در

ans

ذخیره میکند و میتوانید آنرا در

Workspace

هم مشاهده کنید.

 مثال 2

m=masahat_dayere(1)

m =

    3.1416

.

مثال 2

تابعی بدون آرگومان خروجی که تعدادی ستاره را نمایش می دهد.

function setare(n)

for i=1:n

    fprintf('*')

end

fprintf('\n')

end

1- عبارت( : )

>> 1:5

 

ans =

 

     1     2     3     4     5

این عبارت بصورت زیر است

انتها : گام : ابتدا

اگر گام را وارد نکنید بصورت پیش فرض 1 در نظر گرفته میشود

a=10 : 2 : 20     (در کامنت ویندوز تایپ کنید و اینتر بزنید تا نتیجه را ببینید)

 

a =

 

    10    12    14    16    18    20

2-دستور

fprintf

برای نمایش اطلاعات است و به این شکل است

fprintf(فرمت , متغیر )

فرمت ها

%d

%e

%f

%g

\n

عدد صحیح

بصورت نمایی

بصورت اعشاری

اعشاری یا نمایی (هر کدام کوتاهتر بود)

رفتن به خط جدید

 

توجه : این دستور فقط قسمت حقیقی عدد مختلط را نشان میدهد

 چند مثال

fprintf('adad pi= %f \n',pi)

adad pi= 3.141593

----------------------------------

fprintf('adad pi= %e \n',pi)

adad pi= 3.141593e+00

توجه:

2.3e5=2.3*(10^5)

3-معرفی حلقه for

for n=انتها:گام:ابتدا

            دستورات

end

این حلقه از ابتدا تا انتها با فاصله گام تکرار میشود و میتوان آنرا با حلقه while

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

n=ابتدا ;

while n <= انتها

       دستورات

n=n+ گام ;

end

دستور while

while شرط

دستورات

end

در حلقه for  و while دستور break موجب خارج شدن از حلقه میشود مثلا میتوانید چند خط بصورت زیر به حلقه اضافه کنید که اگر شرط محقق شد حلقه متوقف شود

while شرط

دستورات

     if شرط

        break

     end

دستورات

end

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

error('پیام')

به جای آن استفاده کنید تا پیغام مورد نظرتان را هم نمایش دهید

continue دستور

را اگر اضافه کنید حلقه در همان جا متوقف شده و به تکرار بعدی میرود

for n=انتها:ابتدا

            دستورات

if شرط

    continue

end

دستورات

end

توجه:کلید زیر موجب توقف برنامه میشود آنرا در کامنت ویندوز وارد کنید

Ctrl+c

 

4-اجرای برنامه

setare(30)

******************************

شکل دیگری برای اجرای برنامه

 

feval('setare',20)

********************

مثال 3

یافتن ریشه تابع درجه 1 و 2

function [x1 ,x2]=rishe(a,b,c)

%tabe mohasebeye rishe

if a==0

    x1=-c/b;

    x2=[ ];

else

delta=b*b - 4*a*c ;

alamat_delta=sign(delta);

ma=2*a ;

    if alamat_delta == 0

    disp('rishe moza,af va haghighy ast')

    x1=-b/ma;

    x2=x1;

    elseif alamat_delta < 0

    disp('rishe ha mokhtalet hastand')

    s=sqrt(-delta);

    x1=(-b+s*1i)/(ma);

    x2=(-b-s*1i)/(ma);

    elseif alamat_delta > 0

    disp('rishe ha haghighy hastand')

    s=sqrt(delta);

    x1=(-b+s)/(ma);

    x2=(-b-s)/(ma);

    end

end

format rat

end

عباراتی که بعداز % می آیند توضیحات محسوب میشوند و جز برنامه نیستند.

[ ] به معنای ماتریس تهی است 

1-تابع با سه ورودی  و دو خروجی است

2-تابع درجه 2 بصورت زیر است

a*x^2+b*x+c=0

3-دستور شرطی if

if شرط

دستورات

end

شکل دیگر

 

if شرط

دستورات

else                  (در صورت برقرارنبودن شرط برنامه به این قسمت می آید)

 

دستورات

end

شکل دیگر

 

if شرط1

دستورات

elseif شرط2   

                                      (در صورت برقرارنبودن شرط1 برنامه به این قسمت می آید)

دستورات

.

.

.

else

دستورات

end

return دستور

   ifدر

باعث خارج شدن از برنامه است و برنامه به دایرکتوری که در آن اجرا شده برمیگردد

if شرط

    return

end

3-عملگرهای شرطی و منطقی

قسمت های زرد عملگرهای ارتباطی اند 

<=

>=

==

~=

&

&&

|

||

xor(شرط1,شرط2)

~

کوچکتر

کوچکتر مساوی

بزرگتر

بزرگتر مساوی

مساوی

نامساوی

و

شرط1&شرط2

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

و

یا

شرط1|شرط2

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

یا

زمانی برقرار است که شرط 1 یا 2 برقرار باشد

not

 

 

 

 

توجه کنید که == برای مقایسه است و با = تفاوت دارد

4-اولویت عملگرها:از راست به  چپ اولویت کاهش میابد و عملگرهای همتراز از چپ به راست اولویت دارند

 

 

( )

'   .^  ^

~

*   .*   /   ./   \    .\

+ -

:

عملگرهای ارتباطی

&

|

~   xor

 

a/b=a*b^-1

a\b=a^-1*b

A(i,j)*B(i,j)=aij*bij

 

 

 

در اولویت ها برای اطمینان میتوانید از ( ) استفاده کنید

 

5-معرفی چند تابع در متلب( میتوانید به help متلب هم مراجعه کنید)

abs(x)

rem(x,y)

sign(x)

sqrt(x)

exp(x)

log(x)

log10(x)

log2(x)

real(x)

imag(x)

conj(c)

angle(c)

قدر مطلق

باقیمانده

yبرx

x علامت

جذر

e^x

لگاریتم در مبنای عدد نپر

لگاریتم در مبنای 10

لگاریتم در مبنای 2

قسمت حقیقی عدد مختلط

قسمت موهومی عددمختلط

مزدوج مختلط

زاویه مختلط با محور مختصات

lmc(x,y)

gcd(x,y)

round(x)

nthroot(x,n)

fix(x)

floor(x)

ceil(x)

sort(A)

min

max

num2str(a)

factor(x)

ک م م

ب م م

helpبه

متلب مراجعه کنید

 

گرد کردن به سمت صفر

کف x

X سقف

مرتب کردن

helpبه

متلب مراجعه کنید

helpبه

متلب مراجعه کنید

تبدیل عدد به رشته

تجزیه به عوامل اول

 

6-تابع

disp(A)

برای نمایش اطلاعات است  و قسمت موهومی عدد مختلط را هم نشان می دهد مثال

a=['yek=',num2str(1),' va do=',num2str(2)] ;

disp(a)

yek=1 va do=2

 

disp(45+i)

      45        +    1i

format دستور

 

format long

نمایش تا 15 رقم بعد از اعشار

format long e

تا 15 رقم بعد از اعشار بصورت نماد علمی

format long g

نماد علمی یا ساده(هر کدام کوتاهتر است)

format short

تا 4 رقم بعد از اعشار

format short  e

5 رقم نماد علمی

format short g

نماد علمی یا ساده(هر کدام کوتاهتر است)

format bank

تا دو رقم بعد از اعشار

format rat

نسبت کسری

format +

بصورت + یا – یا صفر

format

بازگشت به حالت پیش فرض

 

6- پس از اجرای برنامه فقط خروجی اول نمایش داده میشود اگر میخواهید همه خروجی ها را نمایش بدهی بصورت زیر عمل کنید

[x1 ,x2]=rishe(a,b,c)

 مثال

[x1 ,x2]=rishe(5,9,100)

rishe ha mokhtalet hastand

 

x1 =

 

      -9/10     + 4661/1064i

 

 

x2 =

 

      -9/10     - 4661/1064i

مثال 4

function adad(n)

switch n

    case 1

        disp('1=yek')

    case 2

        disp('2=do')

    otherwise

        error('1 ya 2 ra vared konid')

/ 1 نظر / 44 بازدید
کیانی

سلام ببخشید یک الگوریتم می خواستم وارد متلب کنم شما می تونید راهنمایی کنید