آرایه در متلب / matlab arrays

آرایه در متلب | MATLAB Arrays7 دقیقه مطالعه

هدیه فنولوژی به شما!

در قسمت‌های قبلی دوره آموزش متلب فنولوژی،‌ در مورد بردارها در متلب و ماتریس‌ها در متلب آموختیم. در این قسمت دانش خود را وسیع‌تر می‌کنیم و به طور کلی در مورد آرایه‌ در متلب می‌‌آموزیم. بردارها آرایه‌های یک بعدی و ماتریس‌ها آرایه‌های دو بعدی هستند. اما در این قسمت در مورد آرایه‌های بیش‌ از دو بعد و آرایه‌های چندبعدی صحبت می‌کنیم. بحث را با معرفی چند آرایه‌ی معروف و کاربردی در متلب آغاز می‌کنیم.

آرایه‌های خاص در متلب

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

تابع zeros

این تابع یک آرایه با عناصر صفر تولید می‌کند. به مثال زیر توجه کنید:

نتیجه:

تابع ones

آرایه‌ای با عناصر یک تولید می‌کند:

نتیجه:

تابع eye

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

نتیجه:

تابع rand

این تابع یک آرایه از اعداد تصادفی با توزیع نرمال یکنواخت در بازه‌ی (۰,۱) ایجاد می‌کند:

نتیجه:

تابع magic

تابع magic آرایه‌ای مربعی ایجاد می‌کند که مجموع عناصر سطرها، ستون‌ها و قطرها، عدد ثابتی هستند. این تابع چنین ماتریس مربعی را با گرفتن یک آرگومان ورودی (که باید بزرگ‌تر مساوی ۳ باشد) ایجاد می‌کند.

مثال: تابع زیر مجموع عناصر سطری، ستونی و قطری آن همگی ۳۴ خواهد بود.

نتیجه:

آرایه‌های چند بعدی در متلب

یک آرایه در متلب که دارای بیش‌ از دو بعد باشد را آرایه‌ی چندبعدی می‌نامیم. آرایه‌های چندبعدی در متلب را معمولا از گسترش دادن ماتریس‌های دو بعدی می‌سازیم. به مثال زیر توجه کنید. ابتدا یک آرایه‌ی دو بعدی می‌سازیم:

آرایه‌ی a یک آرایه‌ی ۳ در ۳ و دو بعدی می‌باشد. می‌توانیم به این آرایه یک بعد سوم با مقادیر مشخص مانند زیر اضافه کنیم:

نتیجه را به صورت زیر مشاهده می‌کنید. که می‌توان آن را با صفحه‌ی دو بعدی ans(:,:,1) و ans(:,:,2) شبیه سازی کرد.

آرایه‌ی چندبعدی با توابع خاص

می‌توان با استفاده از توابع خاصی (ones ،zeros ،rand) که گفتیم نیز به صورت چند بعدی آرایه‌ در متلب تعریف کرد. به مثال زیر توجه کنید:

دستور بالا یک آرایه‌ی ۳ بعدی با ابعاد ۴ در ۳ در ۲ می‌سازد که به شکل زیر می‌توان آن ‌را نمایش داد:

آرایه‌ی چند بعدی با تابع cat

برای ساخت آرایه‌های چندبعدی می‌توان با استفاده از تابع cat از ترکیب کردن چند آرایه، یک آرایه‌ی چند بعدی با بعدهای مشخص شده ایجاد کرد. به سینتکس زیر دقت کنید:

در تابع بالا ‌‌B تابع جدید، A1، A2 و … آرایه‌هایی که قرار است ترکیب شوند، و dim بعدی است که قرار است این ترکیب با آن صورت بگیرد. با مثال زیر می‌توانید بهتر کاربرد این تابع را درک کنید:

با اجرای تابع، سه آرایه‌ی ۳ در ۳ دو بعدی با هم ترکیب شده و یک آرایه‌ی ۳ در ۳ در ۳ و سه بعدی را ایجاد می‌کنند.

توابع مهم برای آرایه‌ در متلب

متلب توابع زیر را برای انجام عملیات گوناگون (مرتب کردن، چرخاندن، تغییر شکل دادن، شیفت دادن و …) روی آرایه‌ها در نظر گرفته است:

تابع کاربرد
length طول یک بردار یه بزرگ‌ترین بعد یک آرایه
ndims تعداد بعدهای یک آرایه
numel تعداد عناصر یک آرایه
size ابعاد یک آرایه
iscolumn بررسی می‌کند که آیا ورودی از نوع بردار ستونی است یا خیر
isempty بررسی می‌کند که آرایه خالی است یا خیر
ismatrix بررسی می‌کند آیا ورودی ماتریس است یا خیر
isrow بررسی می‌کند آیا ورودی آرایه‌ی سطری است یا خیر
isscalar بررسی می‌کند آیا ورودی عدد اسکالر است یا خیر
isvector بررسی می‌کند آیا ورودی بردار است یا خیر
blkdiag ماتریس قطری بلوکی را با آرگومان‌های ورودی می‌سازد.
circshift آرایه‌ را به صورت دایره‌ای شیفت می‌دهد.
ctranspose ترانهاده‌ی مزودج مختلط را محاسبه می‌کند.
diag عناصر قطری ماتریس را بر می‌گرداند.
flipdim آرایه‌ را نسبت به یک بعد خاص قرینه می‌کند.
fliplr ماتریس را از چپ به راست قرینه می‌کند.
flipud ماتریس را از بالا به پایین قرینه می‌کند.
ipermute ابعاد جایگشت‌های ماتریس n بعدی را معکوس می‌کند.
permute ابعاد آرایه‌ی n بعدی را مرتب می‌کند.
repmat آرایه را با ابعاد خواسته شده تکرار می‌کند
reshape آرایه‌ را تغییر شکل می‌دهد (تغییر ابعاد)
rot90 ماتریس را ۹۰ درجه می‌چرخاند
shiftdim ابعاد آرایه را شیفت می‌دهد.
issorted بررسی می‌کند عناصر آرایه به ترتیب باشند.
sort عناصر آرایه را مرتب می‌کند.
sortrows سطرها را از کوچک به بزرگ مرتب می‌کند.
squeeze ابعاد یگانه را حذف می‌کند.
transpose ترانهاده آرایه در متلب
vectorize عبارت را تبدیل به بردار می‌کند.

در ادامه برخی از توابع بالا که پرکاربرد هستند را با مثال بیش‌تر توضیح می‌دهیم.

طول، ابعاد و تعداد عناصر در یک آرایه

در مثال زیر به ترتیب طول، ابعاد و تعداد عناصر آرایه‌های داده شده را مشاهده می‌کنید:

نتایج:

شیفت دایره‌ای عناصر آرایه در متلب

به کدهای زیر توجه کنید. در ماتریس b، عناصر a همه‌ی سطرها یک واحد به سمت پایین شیفت پیدا کرده‌اند و در ماتریس c، عناصر a همگی یک سطر به پایین و یک ستون به چپ شیفت پیدا کرده‌اند.

نتایج:

مرتب سازی آرایه‌ در متلب

به مثال‌های زیر از کاربرد تابع sort توجه کنید. در حالت اول عناصر بردار v از کوچک به بزرگ مرتب شده‌اند. در حالت دوم ماتریس m حول سطرهای خود مرتب شده و در حالت سوم ماتریس m حول ستون‌های خود مرتب شده است:

نتایج:

آرایه‌ی سلولی در متلب

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

در سینتکس بالا، C آرایه‌ی سلولی ما و dim یک عدد صحیح یا برداری از اعداد صحیح است که ابعاد آرایه‌ی سلولی را تعیین می‌کنند. obj نیز یک آرایه از نوع جاوا (یا شیئ) و یا از نوع NET. (System.String یا System.Object) می‌باشد.

مثال: به آرایه‌ی سلولی ۲ در ۵ زیر دقت کنید:

با اجرای کد بالا به نتایج زیر خواهید رسید:

ارجاع به داده‌های آرایه‌ سلولی

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

  • استفاده از پرانتز برای ارجاع به مجموعه‌ای از سلول‌ها
  • استفاده از آکولاد برای ارجاع به داده‌های داخل یک سلول مشخص

مثال از حالت اول: اشاره به مجموعه سلول‌های سطر ۱ و ۲ و ستون ۱ و ۲.

نتیجه:
مثال دوم: ارجاع به دیتای سلول‌های سطر اول و ستون دوم تا چهارم.
نتیجه:
تیم محتوایی فنولوژی
تیم محتوایی فنولوژی
گروهی از متخصصان حوزه‌های مختلف
عضویت
اطلاع از
0 دیدگاه‌ها
بازخورد در متن
دیدن همه دیدگاه‌ها

فنولوژی را در شبکه‌های اجتماعی دنبال کنید

©۲۰۲۰ – کلیه حقوق مادی و معنوی متعلق به فنولوژی است.