عملگرها در متلب – آموزش به زبان ساده
عملگرها، قرار است یک سری عملیات را روی عملوند اجرا کنند. مثلاً زمانی که مینویسیم ۲+۳، از یک عملگر جمع (+) استفاده کردهایم. اعداد ۲ و ۳ در این مثال، عملوندهایی از نوع اعداد طبیعی هستند. در اینجا، عملیات جمع توسط عملگر + روی عملوندهای ۲ و ۳ انجام میشود. عملگرها کاربردهای زیادی در محاسبات و برنامهنویسی دارند و در این مطلب میخواهیم انواع عملگرها در زبان برنامه نویسی متلب را پوشش دهیم.
عملگرها در متلب
عملگرها در متلب نمادهایی هستند که به کامپایلر فرمان میدهد تا اعمال مختلف از نوع ریاضی یا منطقی را روی دادهها اعمال کند. همانطور که میدانید متلب بهگونهای برنامهریزی شده است که روی ماتریس یا دادههای آرایهای کار میکند. به همین دلیل عملگرها و توابع در متلب نیز روی دادههای اسکالر و غیر اسکالر اعمال میشوند.
متلب چندین نوع عملگر، نماد و کاراکترهای ویژه برای اعمال روی متغیرها، توابع و عملیات ریاضی دارد. از جمله:
- عملگرهای محاسباتی یا arithmetic operators
- عملگرهای رابطهای یا realtional operators
- عملگرهای منطقی یا logical operators
- عملگرهای تنظیم کننده یا set operations
در ادامه، با این انواع عملگرها در متلب بیشتر آشنا خواهید شد.
عملگرهای حسابی متلب (Arithmetic Operators)
یکی از انواع عملگر در متلب، عملگرهای حسابی هستند. این دسته از اوپراتور در متلب، برای انجام عملیات ریاضی ساده مانند ضرب و تقسیم، جمع و تفریق بهکار برده میشوند. جدول زیر برخی از این عملگرها را با شرح نقش و علامت نماد آن نشان میدهد.
نماد عملگر | نقش عملگر | تابع مربوطه |
+ | جمع | Plus |
+ | بهعلاوه | Uplus |
– | تفریق | Minus |
– | منها | Uminus |
*. | ضرب عنصری (درایه به درایه) | Times |
* | ضرب جبری | Mtimes |
/. | تقسیم درایه به درایه از سمت راست | Rdivide |
\. | تقسیم درایه به درایه از سمت چپ | Ldevide |
/ | اسلش یا تقسیم ماتریس از راست | Mrdivide |
\ | بک اسلش یا تقسیم ماتریس از چپ | Mldivide |
.^ | توان درایه به درایه | Power |
^ | توان ماتریسی | Mpower |
.’ | ترانهادهی آرایهای | Transpose |
‘ | ترانهادهی ماتریس | Ctranspose |
توضیحات عملگرها در متلب – عملگرهای حسابی (محاسباتی)
متلب روی دادههای ماتریس یا آرایهای کار میکند. بهغیر از برخی از عملگرهای ماتریسی، یکسری عملگر حسابی برای کار روی توابع مربوط به آرایهها با ابعاد مساوی در نظر گرفته شده است.
برای متغیرهای از نوع بردار و آرایه مستطیلی، هر دو عملوند باید اندازهی معادل و یکسانی داشته باشند. مگر اینکه یکی از عملوندها از نوع اسکالر باشد. در این صورت (یعنی اگر یک عملوند اسکالر باشد و عملوند دیگر از نوع غیر اسکالر) متلب برای هر آیتم عملوند دیگر را اعمال خواهد کرد. این ویژگی بهعنوان «بسط اسکالر» شناخته میشود.
در اینجا یک مثال در رابطه با بسط اسکالر برای حاصلضرب یک عملوند از نوع اسکالر و یک عملوند از نوع ماتریس آوردهایم.
A= magic (3)
A=
8 1 6
3 5 7
4 9 2
3*A
ans=
24 3 18
9 15 21
12 27 6
اوپراتورهای رابطهای در متلب (Realtional Operators)
یکی از انواع اوپراتور در متلب، عملگرهای رابطهای هستند. این دسته از عملگرها برای مقایسهی مقادیر مختلف اسکالر یا غیر اسکالر بهکار میروند. جدول زیر، لیست عملگرهای رابطهای در متلب را نشان میدهد.
نماد عملگر | نقش عملگر | تابع مربوطه |
== | مساوی | Eq |
~= | نامساوی | Ne |
< | بزرگتر | Gt |
=< | بزرگتر و مساوی با | Ge |
> | کوچکتر | Lt |
=> | کوچگتر و مساوی با | Le |
توضیحات عملگرها و آرایههای رابطهای
عملگرهای رابطهای متلب اجزای مربوط به آرایههایی که ابعاد مساوی دارند را مقایسه میکند. این دسته از عملگرها، بهصورت عنصر به عنصر عمل میکنند. در مثالی که ذکر میکنیم، ماتریس پاسخ مواردی را نشان میدهد که عنصر متناظر در ماتریس A با عنصر متناظر در ماتریس B با هم برابر باشد.
A= [2 7 6; 9 0 5; 3 0.5 6]
B= [8 7 0; 3 2 5; 4 -1 7]
A==B
ans=
0 1 0
0 0 1
0 0 0
برای بردارها و آرایههای مستطیلی، هر دو عملوند باید اندازهی برابر داشته باشند. مگر اینکه یکی از عملوندها اسکالر باشد. در این وضعیت نیز متلب عملوند اسکالر را در برابر هر عنصر دیگر عملوند غیر اسکالر، آزمایش میکند.
در عملگرهای منطقی، جایی که یک رابطهی خاص برقرار بوده و صحیح باشد، عدد ۱ و در جاهایی که رابطه نادرست باشد، ۰ برگردانده میشود.
پیشنهاد مطالعه: خوشه بندی در متلب و اهمیت یادگیری آن برای مسائل هوش مصنوعی
اپراتورهای منطقی در متلب (Logical Operators)
یکی دیگر از انواع عملگرها در متلب، عملگرهای منطقی هستند. این عملگرها، عملیات منطقی را انجام داده و نتیجه را در یک حالت بولی (true یا false) با نشان داده ۱ و ۰ برمیگردانند. ناگفته نماند که مقدار ۱ برای وضعیت true و مقدار ۰ برای وضعیت false برگردانده خواهد شد.
متلب، سه نوع عملگر و توابع منطقی را ارائه میدهد که عبارتند از:
- element-wise: این عملگر روی عناصر و درایههای مربوط به آرایههای منطقی اعمال میشود.
- bit-wise: این عملگر روی بیتهای مربوط به مقدار یا آرایههای اعداد صحیح اعمال میشود.
- short-circute: این عملگر برای اعمال روی عبارات منطقی و اسکالر بهکار برده میشود.
مقادیری که توسط عملگرهای منطقی متلب بازگردانده میشوند- بهجز توایع بیتی- از نوع منطقی خواهند بود. این نوع توابع و عملگر برای استفاده در نمایهسازی منطقی، گزینهی ایدهآل و مناسبی خواهد بود.
عملگرها در متلب و و توابع element-wise
عملگرها و توابع منطقی که در زیر آورده شدهاند، عملیات منطقی element-wise را روی ورودیها اعمال میکنند. خروجی این عملیات یک آرایه با اندازهی مشابه و یکسان خواهد بود. مثال این نوع عملگر در جدول زیر آورده شده است. در اینجا عملگر از ورودیهای برداری A و B استفاده میکند.
A= [0 1 1 0 1];
B= [1 1 0 0 1];
نماد عملگر | نقش عملگر | مثال | تابع مربوطه |
& | این عملگر برای هر محل عنصر که صحیح و در هر دو آرایه غیر صفر باشد، عدد یک را برمیگرداند. برای سایر عناصر مقدار ۰ برگردانده خواهد شد. | A&B= 01001 | AND |
| | این عملگر منطقی، برای هر مکان عنصر که در یک آرایه یا هر دو آرایه غیر صفر باشد، مقدار ۱ و در سایر عناصر مقدار ۰ را برمیگرداند. | A|B= 11101 | OR |
~ | این عملگر، مکمل هر عنصر از آرایهی ورودی را برمیگرداند. | ~A= 10010 | NOT |
Xor | این عملگر برای هر مکانی که در یک آرایه درست باشد (مقادیر غیر صفر) عدد ۱ و برای سایر عناصر عدد ۰ را برمیگرداند. | xor(A,B)= 10100 | XOR |
برای عملگرها و توابعی که دو عملوند آرایه (&، |، و xor) میگیرند، باید اندازهی هر دو آرایه یکسان باشد. استثنا تنها در حالتی است که یک عملوند از نوع اسکالر و عملوند دیگر غیر اسکالر باشد.
- نکته: متلب هر مقدار محدود، غیر صفر و ریاضی که به عنوان ورودی یا عملوندهای عبارت منطقی بهکار برده میشوند را بهشکل منطقی ۱ یا true تبدیل میکند.
عملگرهای bit-wise
توابعی که در زیر نوشته شدهاند، عملگرهای bit-wise را روی ورودیهای از نوع عدد صحیح غیرمنطقی، اجرا میکنند. این ورودیها ممکن است از نوع اسکالر و یا آرایه باشند. در صورتی که ورودی از نوع آرایه باشد، خروجی با اندازهی یکسان خواهد بود.
مثالهایی که در جدول زیر آوردهایم، از ورودیهای اسکالر A و B استفاده میکنند که در آن:
A= 28; % binary 11100
B= 21; % binary 10101
نقش عملگر | مثال | تابع مربوطه |
این عملگر Bitand برای دو آرگومان عدد صحیح غیر منفی را برمیگرداند.. | bitand(A,B)= 20 (binary 10100) | Bitand |
این عملگر Bitor برای دو آرگومان ورودی از نوع عدد صحیح غیر منفی را برمیگرداند. | bitor(A,B)= 29 (binary 11101) | Bitor |
این عملگر، متمم یک عدد n بیتی را برمیگرداند، جایی که n دومین آرگومان ورودی Bitcmp باشد. | bitcmp(A,5)= 3 (binary 00011) | Bitcmp |
این عملگر or انحصاری برای دو عدد سحیح غیر منفی را برمیگرداند. | bitxor(A,B)= 9 (binary 01001) | Bitxor |
عملگرهای short-circute
عملگرهایی که در زیر نوشته شدهاند، عملیات and و or را روی عبارات منطقی از جمله مقادیر اسکالر اجرا میکنند. به این عملگرها short-circute گفته میشود چرا که تنها زمانی عملوند دوم را در نظر میگیرند که عملوند اول خروجی را بهطور کامل تعیین نکند.
نماد عملگر | نقش عملگر |
&& | این عملگر در صورتی که هر دو ورودی true محاسبه شوند، مقدار ۱ و در غیر این صورت مقدار ۰ (نادرست) را برمیگرداند. |
|| | این عملگر در صورتی که هر یک از ورودیها true محاسبه شوند، مقدار ۱ و در غیر این صورت مقدار ۰ (نادرست) را برمیگرداند. |
پیشنهاد مطالعه: راهنمای نصب متلب روی لینوکس به صورت جامع
کاراکترهای خاص متلب
کاراکترهای خاص در متلب، برای انجام یکسری وظایف خاص تعیین شدهاند. عملیات این کاراکترها، بستگی به رفتار و موقعیتی دارد که از آن کاراکتر استفاده خواهد شد.
نماد عملگر | نقش عملگر | تابع مربوطه |
@ | • توابع مدیریت دستورات و reference ها
• فراخوانی متدهای super-calss |
At symbol |
. | • نقطه اعداد اعشاری
• عملیات element-wise • دسترسی به ساختار فیلد • ویژگی شیء یا نوع متد |
Period or dot |
… | • ادامهی خط | Dot dot dot or ellipsis |
, | • جدا کننده | Comma |
: | • ایجاد وکتور
• ایندکس • تکرار حلقهی for |
Colon |
; | • نمایش پایان ردیف
• سرکوب خروجی خط کد |
Semicolon |
() | • تقدم یک اپراتور (عملگر) خاص
• تعریف آرگومانهای تابع • ایندکس |
Prantheses |
[] | • الحاق آرایه
• ساخت و تعریف آرایه • ایجاد ماتریس خالی و حذف عنصری از آرایه • تخصیص آرگومان خروجی چندگانه |
Square brackets |
{} | • تخصیص محتویات به سلول آرایه | Curly brackets |
% | • کامنتگذاری
• تعیین تبدیلها |
Percent |
%{%} | • کامنتهای چند خطی | Percent curly bracket |
! | • دستورات سیستم عامل | Exclamation point |
? | • متاکلاس برای کلاسهای متلب | Question mark |
‘ ’ | • ساخت آرایهی کاراکترها | Single quotes |
“ “ | • ساخت رشته | Double quotes |
N/A | • جداکننده | Space character |
~ | • Not منطقی
• نگهدار آرگومان |
Tilde |
= | • واگذاری | Equal sign |
رشته ها و فرمت کارکترهای خاص در متلب
در متلب، یکسری کاراکترهای خاصی وجود دارد که از آن تنها در متن یک کاراکتر یا رشته استفاده میشود. این کاراکترهای خاص برای درج خط جدید یا برگشت و تعیین مسیر مسیرهای پوشهها بهکار میروند.
نماد عملگر | نقش عملگر | مثال | نام نماد |
/
\ |
جداکنندهی مسیر فایلها یا پوشهها | Windows:
dir([matlabroot ‘\toolbox\matlab\elmat\scriptview1.m’]) یا dir([matlabroot ‘/toolbox/matlab/elmat/scriptview1.m’]) در سیستمهای عامل UNIX/Linux فقط از forward slash استفاده میشود. dir([matlabroot ‘/toolbox/matlab/elmat/scriptview1.m’]) |
Forwardslash
backslash |
.. | پوشه والد | cd ..\..\
در این مثال، دو سطح برمیگردد و سپس در پوشهی نمونه پایین میآید. |
Dot dot |
* | کاراکترهای عام | dir(’example_*.mat’)
این مثال تمام فایلهایی که نام آنها باexample_ آغاز میشود و پسوند mat دارند را مییابد. |
Asterisk |
@ | تعیین پوشهی کلاس | \@myScriptClass\get.m | At symbol |
+ | تعیین دایرکتوری پکیج | +mypack
+mypack/scriptview1.m +mypack/@myScriptClass |
Plus |
آموزش متلب در مکتب خونه
برای آموزش متلب میتوانید از دورههای آموزشی مکتب خونه استفاده کنید. عملگرها در متلب یکی از سرفصلهای این دوره است که بهطور مفصل راجع به operatorها در متلب صحبت میکند. آموزش متلب در مکتب خونه با زبانی ساده از سطح مقدماتی تا پیشرفته کار با این زبان برنامهنویسی را پوشش میدهد.