عمليات و توابع منطقي در متلب matlab

عمليات و توابع منطقي

٤-١    مقايسه منطقي

در MATLAB علامتهاي زير براي مقايسه مقادير عددي و حرفي بكار مي روند.

كوچكتر از              <

كوچكتر از يا مساوي با     =<                                                                                                       بزرگتر از      >

بزرگتر از يا مساوي با        =>                               مساوي با     ==                                            مخالف با      =~

 

چنين مقايسه اي را مي توان بين دو اسكالر، دو آرايه يا اسكالر و اعضاي آرايه انجــام داد.  مثالـهايي براي نحوه عمل اين عملگرها در زيـر آورده مـي شوند.  توجـــه كنيـد كـه حــاصل همـه عمليـات منطقـي مي تواند ٠ به معني نادرست يا ١ به معني درست باشد .

» 3<5

ans =

     1

» [1 2]>=[0 3]

ans =

1        0

» a=[1 2 3

2        3 4];

» b=[-1 2 1

0          2 4];

» a~=b

ans =

1          0     1

     1     1     0

 

بردار زير را در نظر بگيريد:

» x=[1  2  -1  0  -5  4  -1.5  3  2.5  -.5];

 

عبارت زير مولفه‌هاي مثبت اين بردار را نمايش مي دهد:

 

» x(x>0)

ans =     1.0000    2.0000    4.0000    3.0000    2.5000

 

و اين عبارت تعداد مولفه‌هايي را كه بين صفر و ٣ هستند تعيين مي كند:

» length(x((x>=0)&(x<=3)))

ans =

     5

 

٤-٢   عملگرهاي منطقي

روابط منطقي را مي توان با استفاده از عملگرهاي منطقي با هم تركيب كرد.  اين عملگرها عبــارتند از:

و (تركيب عطفي)                                               &

يا (تركيب فصلي)                                                |

يا (مانع جمع)xor

نقيض                                                                ~

 

مثالهايي از طرز عمل اين عملگرها در زير آورده شده اند:

» 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([0 0 1 1],[0 1 0 1])

ans =

     0     1     1     0

 

توجه كنيد كه xor يك تابع است و دو بردار ورودي به آن بايد هم اندازه باشند.

 

٤-٣  توابع منطقي all ،any و find

تابع any معين مي كند كه آيا مولفه غير صفر در يك بردار وجود دارد يا خير.

» v=[-2  1  3  5];

» any(v<1) ans =

     1

» any(v>6) ans =

     0

 

تابع all معين مي كند كه آيا همه مقايسه‌ها درست هستند يا خير.

» all(v<1) ans =

     0

» all(v<6) ans =

     1

 

توابع فوق را مي توانيد براي ماتريسها نيز بكار ببريد.  در اين صورت خروجي اين توابع عبارت اســت از حاصل مقايسه‌هاي گفته شده براي هر ستون ماتريس.

 

تابع find مكان مولفه‌هاي غير صفر را در يك آرايه نشان مي دهد.

» find(v>3)

ans =

     4

 

٤-٤   اعداد ويژه

علاوه بر اعداد حقيقي، MATLAB قادر است حاصل عباراتي را كه از نظر جبري انجام پذير نيستند را نيز پوشش دهد.  تقسيم يك عدد بر صفر بــي نـهايت (Inf) و تقسـيم صفـر بـر صفـر غـير قـابل

.(Not a Number ياNaN) محاسبه است

» x=[1  2  0]./[2  0  0] Warning: Divide by zero.

x =     0.5000       Inf       NaN

 

همچنين اعداد موهومي را به سادگي اعداد حقيقي مي توانيد در محاسبات استفاده كنيد.

» y=sqrt(-1)

y =         0 + 1.0000i

 

توابع isnan ،isinf ،finite و isreal به شما امكان مي دهد كه اين اعداد را شناسايي كنيد:

» finite(x) ans =

     1     0     0

» isinf(x) ans =

     0     1     0

» isnan(x) ans =

     0     0     1

» isreal(x) ans =

     1

» isreal(y) ans =

     0

پیام بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

twenty six + = thirty two