menusearch
javapro.ir

جلسه ششم | آرایه ها در برنامه نویسی متلب

جستجو
پنج شنبه ۱۱ آذر ۱۴۰۰ | ۱:۴۹:۲۳
۱۴۰۰/۸/۱۵ شنبه
(1)
(0)
جلسه ششم | آرایه ها در برنامه نویسی متلب
جلسه ششم | آرایه ها در برنامه نویسی متلب

فهرست جلسات مینی دوره متلب

جلسه اول | آموزش تصویری نصب برنامه متلب در کامپیوتر

جلسه دوم | آموزش کار با برنامه متلب

جلسه سوم | آموزش کار با توابع ریاضی ساده در متلب

جلسه چهارم | آموزش متغیرها در برنامه نویسی متلب

جلسه پنجم | معرفی انواع داده ها در متلب

جلسه ششم | آرایه ها در برنامه نویسی متلب

جلسه هفتم | ماتریس ها در برنامه نویسی متلب

جلسه هشتم | ادامه ماتریس ها در برنامه نویسی متلب

جلسه نهم | رشته ها در برنامه نویسی متلب

جلسه دهم | آرایه سلول ها در برنامه نویسی متلب

جلسه یازدهم | اسکریپت ها در برنامه نویسی متلب

جلسه دوازدهم | آرایه‌‌‌‌‌های چندبعدی در متلب

جلسه سیزدهم | حلقه ها و دستورات شرطی در متلب

جلسه چهاردهم | ساختارها(structures) در متلب

جلسه پانزدهم | توابع در متلب

جلسه شانزدهم | رسم نمودار دوبعدی در متلب

جلسه هفدهم | ادامه رسم نمودار دوبعدی در متلب

جلسه هجدهم | رسم نمودار سه بعدی در متلب

جلسه نوزدهم | محاسبات نمادین در متلب

جلسه بیستم(آخر) | ادامه محاسبات نمادین در متلب

 

مینی دوره آموزش رایگان برنامه نویسی متلب

 

 

آموزش برنامه نویسی متلب
موضوع:آرایه ها در برنامه نویسی متلب
جلسه: ششم
مدرس : مدرسین جاواپرو
متلب را ساده،آسان و شیرین بنوشید!!!

 

 

در جلسه اول گفتیم که MATLAB به معنای آزمایشگاه ماتریس است و همه چیز را می‌توان به گونه ای ماتریس درنظرگرفت. با توجه به مطالب گفته شده در جلسه قبل می‌توان گفت که همه چیز یعنی متغیرها. در این جلسه به موضوع آرایه ها و ماتریس ها می‌پردازیم.
یک آرایه را می‌توان یک ماتریس سطری یا ستونی تعریف کرد. بنابراین ابتدا برای راحتی با آرایه ها شروع به کار می‌کنیم.
یک آرایه سطری را به شکل زیر تعریف می‌کنیم:

 

>>a = [1 2 3]
a =
    1    2    3
آرایه ستونی:
>>a = [1;2;3]
a =
    1
    2
    3



عملیات ریاضی و منطقی را برای دو آرایه نیز می‌توان به کار برد. در این حالت این عملیات به طور نظیربه نظیر بین درایه‌‌‌‌های دو آرایه اعمال می‌شود. به مثال‌‌‌‌های زیر توجه کنید:

 


>>a = [1 2 3]; b = [-1 0 2];
>>a + b
ans =
    0    2    5
>>a - b
ans =
    2    2    1
>>a*b
Error using *
Inner matrix dimensions must agree.


از آنجایی که آرایه ها نیز نوعی ماتریس هستند و ضرب ماتریس ها فقط به شرط برابر بودن تعداد ستون‌‌‌‌های ماتریس دوم و سطر‌‌‌‌های ماتریس اول تعریف می‌شوند، با به کارگیری دستور فوق با پیغام خطا مواجه می‌شویم. چنانچه قصد ضرب یا تقسیم درایه به درایه داشته باشیم، بدین شکل عمل می‌کنیم:

 

>>a.*b
ans =
  -1    0    6
>>a./b
ans =
  -1.0000      Inf 
1.5000


دقت کنیم که در این حالت طول آرایه ها باید برابر باشند، مثلا نمی‌توان یک آرایه سطری را با یک آرایه ستونی جمع نمود:

 

>>[1 2 3] + [1;2;3]
Error using +
Matrix dimensions must agree


برای تعریف آرایه ها با طول بیشتر می‌توان از “:” استفاده کرد:

 

start:step:end
که در این جا start مقدار ابتدایی و step گام افزایش و end مقدار پایانی است:
>>a = 0:1:8
a =
  0    1    2    3    4    5    6    7    8


چنانچه گام افزایشی ما یک باشد، به طور ساده تر داریم:

 

>>a = 1:8
a =
    1    2    3    4    5    6    7 
8


دستور linspace برای ایجاد یک دنباله حسابی، با n جمله a تا b به کارمی رود:

 

linspace(a,b,n)


مثال:

 

>>linspace(1,8,8)
ans =
    1    2    3    4    5    6    7    8
>>linspace(1,10,5)
ans =
  1.0000  3.2500  5.5000  7.7500  10.0000


تفاوت دستور linspace با عملگر “:” این است که در linspace مقدار پایانی یا b الزاماً در آخرین درایه آرایه قرار داده می‌شود ولی چنانچه step در عملگر “:” به گونه ای انتخاب شود که مقدار end در محدوده تعریف دنباله نباشد بزرگترین جمله دنباله که کوچکتر از end است آخرین درایه خواهدبود. برای روشن شدن موضوع به مثال زیر توجه نمایید:

 

>>1:2:10
ans =
    1    3    5    7    9
>>linspace(1,10,5)
ans =
  1.0000  3.2500  5.5000  7.7500  10.0000



هر دو دنباله فوق دارای پنج جمله با مقدار ابتدایی 1، بوده و نقطه انتهایی 10 در نظرگرفته شده است. با این تفاوت که دنباله اول به 9 ختم شده، زیرا بزرگترین جمله دنباله است که از 10 کوچکتر بوده است.
دستور logspace از 10^a تا 10^b، n جمله تولید می‌کند.

 

Logspace(a,b,n)


کاربرد آن در تولید نمودار‌‌‌‌های لگاریتمی و محاسبات لگاریتمی است:

 

>>logspace(0,3,4)
ans =
          1        10        100      1000


- آرایه زیر را درنظر بگیرید:

 

>>a = 1:5
a =
    1    2    3    4    5


می توان درایه‌‌‌‌های دلخواه آرایه را به اصطلاح استخراج نمود:

 

>>a(2)
ans =
    2


می بینیم که کافیست اندیس درایه مورد نظر را در پرانتزی جلوی نام آرایه وارد کرد. اندیس درایه اول همواره یک بوده ولی چنانچه بخواهیم به درایه اخر دسترسی داشته باشیم و ندانیم طول آرایه چقدر است(یا برای راحتی کار) می‌توان از عبارت end استفاده کرد:

 

>>a(end)
ans =
    5


برای استخراج چندین درایه آرایه نیز می‌توان از ":" استفاده کرد:

 

>>a(1:3)
ans =
    1    2    3
>>a(3:end)
ans =
    3    4    5


درواقع باید اندیس درایه‌‌‌‌های موردنظر را در یک آرایه وارد نمود. برای مثال فرض کنید می‌خواهیم همه درایه ها به غیراز درایه وسط را در یک آرایه دیگر ذخیره کنیم:

 

>>b = a([1 2 4 5])
b =
    1    2    4    5


تمرین:با کمک دستور ":" و آرایه α،آرایه ای ایجاد کنید که درایه‌‌‌‌های a را از آخر به اول برگرداند.


جواب:

 

>>b = a(5:-1:1)
b =
    5    4    3    2    1


تمرین: با کمک دستورات فوق دستوری بنویسید که درایه‌‌‌‌های فرد آرایه a را استخراج کند.


جواب:

 

>>a(1:2:5)
ans =
    1    3    5


تمرین: آرایه زیر را درنظر بگیرید:

 

a = [1 3 -1 4 8 0 0 -5 7 9 4 5 7 1 3 6];


دستوری بنویسید که به جز چهار درایه اول و آخرِ آرایه فوق بقیه درایه ها را استخراج کند.


جواب:

 

>>a(5:end-4)
ans =
    8    0    0  -5    7    9    4    5


عملگر "’" یک آرایه سطری را به ستونی و برعکس تبدیل می‌کند:

 

>>a'
ans =
    1
    2
    3
    4
    5
>>ans'
ans =
    1    2    3    4    5


از دستورات گفته شده می‌توان برای جایگزینی برخی درایه ها با مقادیر دلخواه نیز استفاده کرد. برای مثال فرض کنید درایه‌‌‌‌های زوج آرایه فوق را می‌خواهیم برابر صفر قرار دهیم:

 

>>a(2:2:end) = 0
a =
    1    0    3    0    5


یا اینکه بخشی از آرایه را به شکل زیر حذف نمود:

 

>>a(2:2:end) = []
a =
    1    3    5


برای اینکه بهتر با [] آشنا شویم، به دستورات زیر توجه کنید:

 

>>[]
ans =
    []
whos ans
Name    Size          Bytes Class    Attributes

ans      0x0                0 double   

         
نکته: اگر اندیس ورودی آرایه از طول آرایه بیشتر باشد، با پیغام خطا روبه رو می‌شویم:

 

>>a(4)
index exceeds matrix dimensions.


دستورات دیگری نیز برای استخراج بخش دلخواهی از آرایه، وجود دارد که امکانات بیشتری را در اختیار ما قرار می‌دهد. دستور find شماره اندیس مربوطه که در شرط خاصی صدق می‌کند را برمی گرداند. برای مثال آرایه زیر را در نظر بگیرید:

 

>>a = 9    8  -3    4  -6  -9    5    1    0    9    3    3    8    7    2


اگر بخواهیم درایه‌‌‌‌های منفی را از آرایه فوق استخراج کرده و در آرایه دیگری ذخیره کنیم، ابتدا از دستور find جهت استخراج اندیس درایه‌‌‌‌های منفی استفاده می‌کنیم:

 

>>b = find(a < 0)
b =
    3    5    6


نتایج به دست آمده را با آرایه a مقایسه کنید، می‌بینید که اندیس درایه‌‌‌‌های موردنظر به دست آمده اند. حال برای آن که این درایه ها را در یک آرایه دیگر ذخیره کنیم، بدین گونه عمل می‌کنیم:

 

>>a_negative = a(b)
a_negative =
  -3  -6  -9


اکنون که درایه‌‌‌‌های منفی استخراج شده اند می‌خواهیم، این درایه ها از آرایه a حذف شوند:

 

>>a( find(a < 0) ) = []
a =
Columns 1 through 9
    9    8    4    5    1    0    9    3    3
Columns 10 through 12
    8    7   
2


در جلسه بعد به معرفی ماتریس ها و کاربرد دستورات این جلسه در ماتریس ها و ادامه دستورات آن می-پردازیم.

 

پیروز و موفق باشید


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


 

جلسه ششم | آرایه ها در برنامه نویسی متلب

 

فرمت:PDF (لطفا در صورت خرابی لینک دانلود گزارش بدید که لینک اصلاح کنیم)

 


لینک دانلود آموزش رایگان اندروید

لینک دانلود

 

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر