آموزش Matlab قسمت چهارم

1395/1/14 --- 3008

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

با جلسه 4 ام برنامه نویسی  MATLABدر خدمت شما هستم.

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

عملگر های مقایسه ای بر اساس جدول زیر  مقایسه ی بین دو ماتریس را انجام میدهند.نتیجه هر مقایسه به صورت 0 یا 1 منطقی است.این گونه عملیات در دستورات شرطی مثل ifکاربرد دارند.

عملگر شرطی

مثال1

» A=1:6,B=4+A
A =

     1     2     3     4     5     6


B =

     5     6     7     8     9    10



»

در این مثال ابتدا یک آرایه به نام A با 6 عنصر ایجاد میکند .آرایه B از جمع عدد 4 با آرایه A حاصل میشود .

آرایه دیگری به نام cنیز تعریف کردیم

c=A>3 

خروجی این دستور به صورت زیر است

0     0     0     1     1     1

در واقع به ازای عناصر بزرگتر از 3 در ارایه A مقدار 1 و بجای بقیه عناصر مقدار 0 قرار گرفته است .

مثال 2

» a= [1 , 2, 3 , 4 , 5];
b=[10 , 2 , 13 , 4 , 8];
c=(a == b)

c =

     0     1     0     1     0


»

در این مثال ،آرایه c از مقایسه اعضای آرایه یa و b به دست آمده است

علامت == دو متغیر را باهم مقایسه میکند در صورتی که برابر باشند مقدار 1 (True) را برمیگرداند.

در غیر این صورت مقدار 0(False)را برمیگرداند .

درحالی که علامت =برای تخصیص خروجی یک عملگر به یک متغیر استفاده میشود .

مثال3

» a = [1 , 2 , 3 ; 4 , 2 , 2 ; 1 , 10 , 0];
x= a >=2

x =

     0     1     1
     1     1     1
     0     1     0
	
»

مثال4

» a= 1 : 9;
b = a > 3

b =

     0     0     0     1     1     1     1     1     1

»

عملگر های منطقی

این عملگرها روشی برای ترکیب و یا قرینه کردن عبارات در اختیار ما قرار میدهند .

این عملگر ها عبارت اند از:

AND      &

OR          |

NOT       ~

مثال 1

» m=[1 2 4; -2 3 -1];
 ~(m>0)

ans=

     0     0     0
     1     0     1

» (m>0)|(m<=2)

ans =

     1     1     1
     1     1     1

» (m>0)&(m<=2)

ans =

     1     1     0
     0     0     0

»

به غیر از عملگر های رابطه ای و منطقی تعدادی تابع منطقی و رابطه ای نیز وجود دارد 

که در اینجا به سه نوع از ان ها اشاره میکنیم :

Xor(x,y)

این تابع هنگامی که هرکدام از مقادیر xو y غیر 0 باشد،مقدار 1 و در صورتی که هردو 0 باشند یا هر دو غیر 0 باشند، مقدار 0 را  برمیگرداند .

all(x)

اگر تمامی عناصر موجود در بردار غیر صفر باشد ،مقدار 1 و در غیر این صورت مقدار 0 را برمیگرداند .

any(x)

درصورتی که حداقل یکی از عناصر یک بردار غیر 0 باشد مقدار 1 و در غیر این صورت مقدار 0 را برمیگرداند.

مثال

»  xor([0 0 1 1],[0 1 0 1])

ans =

     0     1     1     0

»

در ادامه قصد داریم با ساختارهای تکرار: for و while و ساختارهای شرطی if-else و  switch آشنا شویم

If

 این دستور جزء توابع شرطی به حساب می آید.در صورت صادق بودن شرط ذکر شده ،دستور یا دستورات خاصی را اجرا میکند .

ساختار آن به صورت زیر است :

if condition1
statements1
elseif condition2
statements2
.
.
else
statementsN
end

در ابتدا شرط قرار گرفته در کنار if اعمال میشود..اگر این شرط برقرار باشد ،به خط بعدی رفته و دستور مربوطه را اجرا میکند .سپس دستورات بعد endاجرا میشود.

در غیر این صورت وارد else if میشود .و شرط 2 مورد بررسی ثرار میگیرد.در صورتی که این شرط برقرار باشد دستور شماره 2 اجرا میشود.و دستورات بعد end اجرا میشود.

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

While

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

ساختار کلی آن به صورت زیر است 

While  condition

Statements

End

Switch

ساختار کلی آن به صورت زیر است

var = ...
switch var
case value of var
statements1
case {values of var}
statements2
otherwise
statements3
end

درصورتی که شرط بیان شده در مقابل عبارت caseبراورده شود،دستور عمل مربوط به ان نیز اجرا خواد شد

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

 اگر هیچ کدام از شرط ها برقرار نباشد دستور3 واقع در otherwiseاجرا میشود.گداشتن دستور بعد از otherwise اختیاری است.درصورتی کهotherwise حذف شود و هیچ کدام از caseها  نیز برقرار نباشد ،جمله بعد endاجرا خواهد شد .

مثال

یکی عدد تصادفی بین 0 و 9 تولید کنید.

سپس زوج و فرد بودن آن را مشخص کنید .

d = floor(10*rand);
disp(d);
switch d
case 0
disp('Zero');
case {1,3,5,7,9}
disp('Odd');
otherwise
disp('Even');
end

مثال


x = input(' x = ');
if x >= 0
y=x^2
end

مثال

» a = input('a =');
switch a
case 1
disp('One')
case 2
disp('Two')
case 3
disp('Three')
end

مثال

» k = 0;

for x = 0:0.2:1

k = k + 1



end

فکر میکنم برای این جلسه کافی باشه.

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