در این مطلب آموزشی بنا داریم تا تابع sum در متلب (MATLAB) را آموزش دهیم، و نحوه استفاده از این دستور برای ماتریس، بردار و … را شرح دهیم!
این دستور، جم اعضای آن بردار را میدهد! مثلاً فرض کنید بردار سطری A به صورت زیر تعریف شده است:
a=[1,2,3]
برای بدست آوردن حاصل جمع اعداد این بردار داریم!:
sum(a)
که حاصل برابر است با!:
ans = 6
اگر همین موضوع برای بردار ستونی هم بکار رود، نتیجه یکسان است، به عنوان تمرین، حاصل جمع بردار ستونی زیر را محاسبه کنید!
b=[5;7;14]
این دستور از چیزی که احتمالاً توقع دارید متفاوت است! و جمع تمام اعضای ماتریس را نمیدهد! مثلاً ماتریس c که به شرح زیر تعریف شده است را در نظر بگیرید!:
c = 1 2 3 4
اگر بنویسیم:
sum(c)
حاصل به صورت زیر خواهد بود که با انتظار شما متفاوت است!
ans = 4 6
همانطور که میبینید، جمع روی سطرها زده شده!
یعنی مثلاً ستون اول رو گرفته و همه اعداد روی سطرهای مختلفش رو جمع زده! و همین کار رو برای بقیه ستونها هم انجام داده! پس یادتون باشه که در حالت پیشفرض، روی سطرها جمع میزنه!
اما متلب (MATLAB) این قابلیت رو در اختیار ما قرار میده که حتی خودمون انتخاب کنیم که روی سطرها جمع بزنه یا روی ستونها!
برای اینکه روی ستونها جمع بزنه، داریم!:
sum(c,2)
که خروجی به صورت زیر خواهد بود:
ans = 3 7
یعنی هر سطر رو گرفته و روی ستونها جمع زده!
توجه کنید که مثلاً اگر بجای اون 2 در عبارت sum(c,2) بذاریم 1، همون نتیجه دفعه قبل رو بهمون میده و همون حالت پیشفرضش، که جمع روی سطر بود رو پیادهسازی میکنه!
سوال پیش میاد که:
برای اینکار میشه از دو روش زیر استفاده کرد، که روش دوم بیشتر توصیه میشه، چون حتی برای ماتریسهای با ابعاد بالاتر هم مناسبه!
راه حل اول:
sum(sum(c))
یعنی اول روی همه سطرها جمع بزنه (که نتیجش یک بردار میشه!) و بعد حالا sum دوم میاد، روی کل اعداد بردارِ حاصله جمع میزنه که نتیجش میشه یک عدد که جمع همه اعداد ماتریس است! البته توجه کنید که برای ماتریس با ابعاد بالاتر (مثلاً ماتریس سه بعدی)، دیگه این روش و برای این منظور کارا نیست!
راه حل دوم:
sum(c(:))
عبارت زیر، همه اعضای یک ماتریس را به بردار تبدیل میکند، مثلاً اگر ماتریس 6 در 6 هم باشه، تمام عناصرش رو تبدیل میکنه به صورت یک بردار!
c(:)
حالا اگر از این بردار جدید کعه حاصل شده، sum بگیریم، درواقع حاصل جمع کل اعداد ماتریس بدست آمده است!
تعداد دیدگاه | 0 |
تاریخ انتشار | 20/03/2019 |
تاریخ بروزرسانی | 20/03/2019 |