بازدید: ۵٠١

توابعی که درایه به درایه عمل می کنند (آموزش MATLAB)

بازگشت به صفحه اصلی آموزش MATLAB

برنامه MATLAB از ماتریس های اسپارس (sparse ) نیز پشتیبانی می کند (ماتریس های اسپارس ماتریس هایی هستند که بیشتر عناصر آنها صفر است). ماتریس های بزرگ می توانند حافظه و توان محاسباتی زیادی را مصرف کنند. همچنین بسیاری از ماتریس ها هستند که حاوی تعداد زیادی مقادیر صفر می باشند. با استفاده از دستوراتی که برای ماتریس های اسپارس ساخته شده اند، می توان مشخص کرد که بسیاری از مقادیر ماتریس ها صفر هستند تا بدین طریق از حافظه بصورت بهینه استفاده شده و محاسبات سریعتر انجام شود.

توابع ریاضی مختلفی برای کار بر روی ماتریس ها وجود دارند. در اینجا ما به بررسی و توصیف سه نوع از این توابع می پردازیم. در ابتدا توابعی که بصورت درایه به درایه و به روشی همانند عملیات جبری معمولی عمل می کنند. دوم توابعی که بر روی کل ماتریس یا زیرمجموعه ای از عناصر آن عمل می کنند و بسیار شبیه به عملیات جبری معمولی هستند. بعنوان مثال توابعی برای جمع زدن سطرها و ستون ها. سوم توابعی که بر روی کل ماتریس عمل می کنند همانند ضرب ماتریس ها.

بیشتر توابع ریاضی معمولی در MATLAB، در هنگام استفاده در ماتریس ها بصورت درایه به درایه عمل می  کنند. تنها عملگرهای ضرب، تقسیم و توان هستند که از این قاعده مستثنی می باشند. دلیل آن هم این است که استاندارد در MATLAB، عملیات جبری ماتریس ها می باشد و ضرب، تقسیم و توان در MATLAB بصورت درایه به درایه عمل نمی کنند. اگرچه عمل جمع و تفریق اینگونه نیست و درایه به درایه عمل می کند.

می توان گفت که توابع ریاضی که در مقابل خود پرانتز دارند و آرگومانهایی را دریافت می کنند (همانند sqrt() و log())، بصورت درایه به درایه عمل می کنند در حالیکه توابعی که از پرانتز استفاده نمی کنند، همانند * و یا / مطابق با جبر ماتریس ها عمل می کنند.

برای اینکه ضرب و تقسیم ماتریس ها بصورت درایه به درایه و با استفاده از عملگر های * و / انجام دهید، باید یک کاراکتر نقطه (/. و یا *.) در مقابل آنها قرار دهید. بعنوان مثال:

 

عملگر درایه به درایه ماتریس ها

 

در جواب اول مثال فوق هر عنصر، حاصلضرب مقادیر نظیر آن در X و Y است وهر عنصر در جواب دوم حاصل تقسیم نظیر به نظیر عناصر ماتریس X به Y می باشد. توجه داشته باشید که ماتریس ها باید دارای ابعاد یکسان باشند. البته تنها مورد استثنا، این است که X و یا Y یک اسکالر باشند.

روش های دیگری نیز برای اجرای این توابع وجود دارند که بصورت درایه به درایه عمل کنند. می توانید برای این منظور از توابع plus()، minus()، times() و rdivide() به ترتیب برای جمع، تفریق، ضرب و تقسیم بصورت درایه به درایه استفاده کنید. عبارت rdivide به معنی right division می باشد به معنی تقسیم به آرگومانی که در سمت راست قرار دارد. دستور مشابه دیگری برای left division نیز وجود دارد که از آن به عنوان ldivide() نام می برند.

سایر توابع ریاضی که قبلا مشاهده کردیم و از پرانتز استفاده می کنند (همانند ریشه مربع) از عملگر درایه به درایه استفاده می کنند.

 

ریشه مربع

 

همچنین عملگرهای رابطه ای نیز در زمان مقایسه یک ماتریس با یک اسکالر بصورت درایه به درایه عمل می کنند. حال اگر بخواهیم دو ماتریس را بطور کلی با یکدیگر مقایسه کنیم، بصورت زیر می شود:

 

مقایسه ماتریس اسکالر

 

هر درایه X با درایه نظیر آن در Y مقایسه می شود. در نتیجه این قیاس متوجه می شویم که دو تا از عناصر آنها بزرگتر و دو تا کوچکتر می باشند.

 

بازگشت به صفحه اصلی آموزش MATLAB

 

طراحی سایت و سئو توسط ضابط