عبارات و عملگرهای منطقی در متلب
یک عبارت منطقی(logical expression)، یک عبارت است که می تواند true یا false باشد. بعنوان مثال، نامساوی a<b یک عبارت منطقی است. این عبارت بسته به مقادیر a و b می تواند true یا false باشد. توجه کنید که عبارت منطقی، با یک عبارت ریاضی(mathematical expression) که یک بیانیه حقیقی را مشخص می کند، متفاوت است. در مثال قبلی،اگر عبارت ریاضی a<b را در نظر بگیریم، به این معنی است که a کوچکتر از b است و مقادیر a و b به طوری که a ≥ b باشد، غیر مجاز هستند. عبارات منطقی، اساس محاسبات هستند؛ از این رو، فرض بر این است که تمام عبارات در این کتاب، منطقی هستند و عبارات ریاضی نیستند مگر اینکه چیز دیگری ذکر شود.
در متلب، یک عبارت منطقی، که ارزش آن true باشد، مقدار TRUE را تولید می کند. یک عبارت نیز که ارزش false داشته باشد، مقدار FALSE را تولید می کند. در این کتاب، مقدار TRUE معادل با 1 است و مقدار FALSE معادل با 0 است. تشخیص دادن بین اعداد 1 و 0 و مقادیر منطقی TRUE و FALSE فراتر از محدوده ی این کتاب است. ما در کتاب های پیشرفته تر محاسباتی، به این موضوع می پردازیم.
از عبارات منطقی برای طرح سوالات در متلب استفاده می شود. بعنوان مثال، عبارت \(3 < 4\) معادل است با: آیا 3 کوچکتر از 4 است؟ و چون که این عبارت true است، متلب، ارزش منطقی آن را 1 قرار می دهد. اما \(3 > 4\) ارزش false دارد بنابراین متلب آن را به صورت 0 محاسبه می کند.
عملگرهای مقایسه ای(Comparison operators)، مقدار دو عدد را با یکدیگر مقایسه می کنند و از آنها برای ساخت عبارات منطقی(logical expressions) استفاده می شود. متلب از نمادهای زیر به ترتیب برای مشخص کردن موارد زیر استفاده می کند:
>,>=,<,<=,∼=,==
- بزرگتری
- بزرگتر مساوی
- کوچکتری
- کوچکتر مساوی
- نابرابری
- برابری
(تصویر 1.2 : جدول های حقیقی برای AND و OR منطقی)

خودتان امتحان کنید
عبارت منطقی "آیا 5 برابر با 4 است؟" و "آیا 2 کوچکتر از 3 است؟" را محاسبه کنید:
>> 5 == 4
ans =
0
>> 2 < 3
ans =
1
عملگرهای منطقی، عملکردهایی بین دو عبارت منطقی هستند که برای بحث، آنها را P و Q می نامیم. عملگرهای اصلی منطقی که در اینجا مورد استفاده قرار خواهیم داد، عملگرهای AND و OR و NOT هستند که در متلب به ترتیب به صورت && و || و ~ نشان داده می شوند. عملگرهای منطقی دیگری نیز وجود دارند اما آنها معادل با ترکیبی از این سه عملگر هستند.
ارزش عبارت P AND Q برابر با true است، اگر ارزش هردوی P و Q برابر با true باشد. ارزش عبارت P OR Q برابر با true است، اگر ارزش یکی از P یا Q برابر با true باشد یا اگر ارزش هردوی P و Q برابر با true باشد.
مهم است بدانیم که OR در متلب، OR کلی(inclusive) محسوب می شود، یعنی اگر هردوی P و Q ارزش true داشته باشند، ارزش آن برابر با true می شود. در مقابل، OR انحصاری(exclusive) یا XOR برابر با true است، اگر ارزش یکی از P یا Q برابر با true باشد؛ اما اگر هردوی P و Q ارزش true داشته باشند، ارزش آن false خواهد شد. اگر P برابر با true باشد، آنگاه NOT P برابر با false خواهد بود و اگر P برابر با false باشد، آنگاه NOT P برابر با true است.
جدول حقایقِ(truth table) یک عملگر یا عبارت منطقی، نتیجه ی هر ترکیب حقیقی از P و Q را نشان می دهد. جدول های حقایق برای AND و OR در تصویر 1.2 در بالا نشان داده شده اند.
خودتان امتحان کنید
فرض کنیم ارزش P برابر با true است، با استفاده از متلب مشخص کنید که ارزش عبارت (P AND NOT(Q)) OR (P AND Q) همواره true است، صرفنظر از اینکه ارزش Q برابر با true باشد یا false. از نظر منطقی، می توانید ببینید که چرا این مورد، این چنین است؟ ابتدا فرض کنید که ارزش Q برابر با true است:
>> (1&&~1) || (1&&1)
ans = 1
حالا فرض کنید که ارزش Q برابر با false است:
>> (1&&~0) || (1&&0)
ans = 1
عملگرهای منطقی، درست مانند عملگرهای محاسباتی، نسبت به یکدیگر و در ارتباط با عملگرهای محاسباتی، از یک ترتیب عملکرد برخوردار هستند. تمام عملکردهای محاسباتی، قبل از عملکردهای مقایسه ای که قبل از عملکردهای منطقی اجرا می شوند، مورد اجرا قرار می گیرند. با استفاده از پرانتزها می توانیم ترتیب عملکردها را تغییر دهیم.
خودتان امتحان کنید
عبارت \((1 + 3)>(2+5)\) را محاسبه کنید.
>> 1 + 3 > 2 + 5
ans = 0
نکته: حتی وقتی که ترتیب عملیات ها مشخص باشد، معمولا برای شما و کسانی که کدهای شما را می خوانند، بهتر است که از پرانتزها برای واضح تر نشان دادن منظور خود استفاده کنید. در مثال قبلی، عبارت \((1 + 3)>(2+5)\) واضح تر از عبارت \(1 + 3 > 2 + 5\) است.
هشدار! در منطق متلب، از 1 برای نشان دادن true و از 0 برای نشان دادن false استفاده می شود. اما 1 و 0 هنوز عدد هستند. بنابراین متلب به ما امکان می دهد تا از عبارت \((3 > 2) + (5 > 4)\) که برابر با 2 می شود، سوء استفاده کنیم.
هشدار! با اینکه در منطق رسمی، از 1 برای نشان دادن true و از 0 برای نشان دادن false استفاده می شود، متلب کمی از این علامت گذاری سوء استفاده می کند و هر عددی که برابر با 0 نباشد را وقتی که در یک عملیات منطقی مورد استفاده قرار گیرد، بعنوان true در نظر می گیرد. از این ویژگی متلب استفاده نکنید. همواره برای نشان دادن یک بیانیه true از 1 استفاده کنید.
خودتان امتحان کنید
دو هفته(fortnight) برابر با طول زمان 14 روز است. از یک عبارت منطقی برای مشخص کردن اینکه آیا در مدت زمان دو هفته(fortnight)، بیش از 100000 ثانیه وجود دارد یا نه استفاده کنید:
>> (14*24*60*60) > 100000
ans = 1
خلاصه
- ما می توانیم از طریق محیط متلب، با آن تعامل کنیم.
- متلب را می توانیم مانند یک ماشین حساب مورد استفاده قرار دهیم. این نرم افزار از تمام تابع ها و عملیات محاسباتی که معمولاً توسط یک ماشین حساب علمی مورد استفاده قرار می گیرد، برخوردار است.
- ما همچنین می توانیم از متلب برای انجام دادن عملیات های منطقی استفاده کنیم.
تابع ها و عملگرها در متلب

- بازدید: 506
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.