عملگرهاي منطقي و رابطه اي در نرم افزار متلب

علاوه بر آنچه كه در رياضيات متداول است، مطلب عملگرهاي رابطه اي و منطقي را نيز مي تواند پشتيباني نمايد ، در صورتيكه شما با زبانهاي برنامه نويسي ديگري كار كرده باشيد با اينگونه عملگرها آشنايي داريد و مي دانيد تا چه اندازه در هدايت و كنترل يك برنامه مي توانند اهميت داشته باشند. شكل ظاهري اين عملگرها تا حدود زيادي شبيه فرمي كه در  رياضيات بكار مي برديد، مي باشد در اجراي برنامه وقتي به اين عملگرها مي رسد جواب يكي از دو عبارت صحيح يا اشتباه است كه بر اساس آن تصميم  گرفته مي شود كه روند ادامه  برنامه به كدامين شاخه از خطوط برنامه هدايت گردد .

در جدول زير تعدادي از اين عملگرها رابطه اي را مشاهد مي كنيد :

عملگر رابطه اي

توضيح

كمتر از

<=

كمتر يا مساوي از

> 

بزرگتر از

>=

بزرگتر يا مساوي از

==

برابر با

~=

مخالف با

به چند مثال ساده از كاربرد اين عملگرها توجه فرمائيد :

a=1:9,b=9-a

a =

     1     2     3     4     5     6     7     8     9

b =

     8     7     6     5     4     3     2     1     0

 

tf=a>4  % if true is 1  if false is 0 return.

tf =

     0     0     0     0     1     1     1     1     1

 

td=(a==b)  % if true is 1  if false is 0 return.

td =

     0     0     0     0     0     0     0     0     0

 

th=b-(a>2)

th =

     8     7     5     4     3     2     1     0    -1

 

b=b+(b==0)*eps

b =

  Columns 1 through 7

8.0000  7.0000  6.0000  5.0000  4.0000  3.0000   2.0000

  Columns 8 through 9

1.0000    0.0000

در مثالهاي فوق دربعضي محاسبات جوابها بصورت 0 يا 1 يميباشد عملگر را اعمال ميكند كه براي جواب صحيح عدد 1 و براي اشتباه  عدد0 را بر ميگرداند .

تابع eps  كوچكترين عدد ممكن در رياضيات ميباشد كه در مطلب معادل با  ميباشد شايد در نگاه اول به اين بينديشيد كه كاربرد اين رقم بسيار كوچك چه فايده اي ميتواند داشته باشد ، اين عدد به ظاهر بدرد نخور ميتواند تحول عظيمي در برنامه هاي شما داشته باشد در تقسيمات اگر شما در مخرج تقسيم پارامتر مورد نظر را با اين عدد جمع نمائيد مانع از بروز حالت تقسيم عدد بر صفر و در نتجه نامعين شدن آن ميگردد ، براي درك بيشتر به مثال زير توجه فرمائيد :

x=(-3:3)/3

x =

-1.0000  -0.6667  -0.3333   0    0.3333    0.6667    1.0000

 

y=sin(x)./x

Warning: Divide by zero.

(Type "warning off MATLAB:divideByZero" to suppress this warning.)

y =

0.8415   0.9276  0.9816   NaN    0.9816    0.9276    0.8415

 

مشاهده مي كنيد كه مطلب يك پيغام اخطار به ما مي دهد و بيان مي كند كه عدد بر صفر تقسيم شده و جواب NAN به معني نامعين را مي دهد در صورتيكه ما مي دانيم در حالت حدي جواب آن برابر با 1 است ، تنها راه حل سريع و سادههاي كه مي توان استفاده نموده استفاده از eps مي باشد :

بنابراين بهتراست برنامه فوق را بصورت زير اصلاح نمائيم :

x=(-3:3)/3;

x=x+(x==0)*eps;

y=sin(x)./(x)

 

y =

   0.8415  0.9276  0.9816  1.0000  0.9816   0.9276  0.8415

در برنامه فوق مطلب شرط == رابراي تك تك آرايه هاي چك ميكند اگر برابر نبود عدد 0 رابرميگرداند كه 0*eps همان 0 ميشود و اگر تساوي برقراربود عدد 1 را برميگرداند كه 1*eps شده و با x كه همان صفر است جمع ميشود .

 عملگرهاي منطقي در مطلب :

عملگرهاي منطقي روندي براي اضافه يا كم كردن  روابط بيان شده مطلب مي يباشد ، شكل ظاهري اينگونه عملگرها در مطلب به صورت زير ميباشد :

عملگر منطقي

تشريح

&

 " و "  يا معادل "  and  " يا به زبان رياضي  " "

|

" يا " معادل" or" و به زبان رياضي "  "

~

 " نه " معادل " not " به زبان رياضي "  "

  براي درك بيشتر مثالهاي زير از كاربرد اين عملگرها را مشاهده فرمائيد :

clear all;

echo on

a=1:9;b=9-a;

t1=(a>4)|(b<3)

t1 =

     0     0     0     0     1     1     1     1     1

 

t=(a>2)&(a<6)

t =

     0     0     1     1     1     0     0     0     0

echo off

 

بهتر است در اينجا دستور echo on  را معرفي كنيم ؛ اگر بخواهيد خطوط برنامه تان كه در M-File نوشته ايد همزمان با اجرا و خروجي ها در صفحه command نيز نشان داده شود از اين دستور استفاده مي كنند كه به عنوان انعكاس دهنده برنامه در پنجره اجرا مي باشد ؛ اگر اين دستور را در ابتداي برنامه تان نوشته ايد و به حالت فعال در آورديد تا زماني كه از دستور echo off براي كنسل كردن اين دستور بكار نبريد، اين دستور به حالت فعال باقي مي ماند و ممكن است در برنامه هاي كه همزمان با اين برنامه اجرا مي شوند تاثير گذاشته و باعث انعكاس خطوط برنامه ديگر M_file هاي كه بعد از اين  برنامه تا قبل از بستن محيط مطلب  در پنجره command گردد ،لذا در صورت مشاهده كافيست به انتهاي برنامه اي كه دستور echo on اضافه كرده ايد دستور echo off را اضافه نمائيد .

 عملگرهاي رابطه اي و منطقي :

       علاوه بر مواردي كه در فوق بيان گرديد مطلب توابع بسياري براي ايجاد اينگونه عملگرها دارد كه در جدول زير تعدادي از آنها را مشاهده مي نمائيد :

عملگرهاي منطقي و رابطه اي

(xor(x,y

بيانگرعملگر منطقي يا است آرايه هاي غير صفرهم در xو هم y را برمي گرداند .

(any(x

در بردار x غير صفرها را برميگرداند .

(all(x

تمامي المانهاي غير صفر از x را برمي گرداند .

 

مثال :

clear all;

echo on

x=[0 2 5;2 0 6;8 4 3];

y=[1 2 0;5 7 0;5 0 6];

 

xor(x,y)

ans =

     1     0     1

     0     1     1

     0     1     0

 

 


انجام پروژه با نرم افزار متلب پذیرفته می شود.

برای سفارش پروژه با نرم افزار متلب با ما تماس بگیرید.

  

 

دیدگاه خود را بنویسید

دیدگاه پس از تائید مدیریت منتشر می شود.