آرایه سلولی در متلب چیست؟ – به زبان ساده + تعریف و مثال
![آرایه سلولی در متلب چیست؟ – به زبان ساده + تعریف و مثال](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/07/cellarray-in-matlab.jpg.webp)
«متلب» (MATLAB)، یکی از پلتفرمهای محبوب برنامهنویسی و همچنین زبان برنامه نویسی با کارایی بالا برای محاسبات فنی بهشمار میرود. این نرمافزار، امکاناتی نظیر محاسبات، بصریسازی و برنامهنویسی در محیطی با کاربری نسبتاً آسان را برای ما فراهم میکند. یکی از ساختارهای موجود در زبانهای برنامهنویسی، آرایهها هستند که برای ذخیره دادهها، مورد استفاده قرار میگیرند. «آرایه سلولی» نیز، یکی از «انواع دادهای» در متلب محسوب میشود که دادههای گوناگونی را در خانههای ایندکس (یا نمایه) شده بهنام سلول، نگه میدارد. آرایه سلولی در متلب، میتواند حاوی فهرستها، متن، اعداد یا آرایههای عددی در اندازههای گوناگون باشد. در این مطلب از مجله فرادرس میخواهیم با آرایه سلولی در متلب آشنا شویم و آن را با مثالهای متنوع و تا حد امکان بهطور جامع یاد بگیریم.
مقدمه ای بر آرایه سلولی در متلب
در این قسمت، به بیان انواع دادههایی که در نرمافزار متلب وجود دارند و همچنین مقدمهای از آرایههای سلولی میپردازیم.
نوع داده های موجود در متلب کدام اند؟
نرم افزار متلب، شامل نوع دادههای گوناگونی است که در ادامه فهرست شدهاند.
- انواع عددی (Numeric Types): دادههایی از نوعِ عدد صحیح یا اعشاری را نگه میدارد.
- کاراکترها و رشتهها (Characters and Strings): برای ذخیره دادههای متنی، آرایههای کاراکتری یا رشتهای مورد استفاده قرار میگیرد.
- تاریخ و زمان (Dates and Time): آرایههایی از مقادیر تاریخ و زمان هستند که میتوانند در قالبهای مختلفی نمایش داده شوند.
- آرایههای طبقهبندی شده (Categorical Arrays): آرایههایی از دادههای «کیفی» هستند که مقادیری از مجموعه متناهی دادههای غیر عددی و گسسته را در بر میگیرند.
- جداول (Tables): آرایههایی جدول-مانند هستند که ستونهای (دارای نام) آن میتواند انواع متفاوتی داشته باشد.
- جداول زمانی (Timetables): دادههای «Time-Stamped» را شامل میشوند که در قالبی جدول-مانند قرار دارند.
- ساختارها (Structures): آرایههایی با فیلدهایی (دارای نام) هستند که میتوانند دادههایی با انواع و اندازههای گوناگون را نگهداری کنند.
- مدیریت توابع (Function Handles): متغیرهایی که امکان فراخوانی یک تابع (بهطور غیر مستقیم) را برای ما فراهم میکنند.
- دیکشنریها (Dictionaries): دربرگیرنده نگاشت دادهها به همراه کلیدهایی هستند که مقادیر را ایندکس میکنند.
- سریهای زمانی (Time Series): بردارهای دادهای که در طول زمان نمونهبرداری شدهاند را در بر میگیرد.
- شناسایی نوعِ داده (Data Type Identification): نوعِ داده متغیر را تشخیص میدهد.
- تبدیل نوعِ داده (Data Type Conversion): برای تبدیل نوعهایی مانند آرایههای عددی، رشتهها و آرایههای کاراکتری، تاریخها و زمانها، آرایههای سلولی، ساختارها یا جداول بهکار میرود.
- آرایه سلولی (Cell Arrays): این نوع آرایهها میتوانند حاوی دادههایی با انواع و اندازههای مختلفی باشند. در این مطلب قصد داریم تا این نوع آرایه را مورد بررسی قرار دهیم.
![مقدمه ای بر آرایه سلولی در متلب](https://blog.faradars.org/wp-content/uploads/2023/07/cell-array-2-1.jpg)
آشنایی با آرایههای سلولی در متلب
«آرایههای سلولی» (Cell Arrays) در نسخه ۵٫۰ نرم افزار متلب معرفی شدند و این امکان را برای ما فراهم کردند تا آرایههایی با اندازه و نوعهای مختلف داشته باشیم. آرایههای سلولی، از نظر ابعاد، مستطیلی شکل هستند و از آنجاییکه هر عنصرِ درون آرایه، یک سلول محسوب میشود، تمام مواردی که درون آرایه قرار میگیرند، باید از یک نوع باشند. با این حال، محتوای هر سلول میتواند هر آرایهای از متلب که در ادامه فهرست شده است را شامل شود.
- «آرایههای عددی» (Numeric Arrays)
- «رشتهها» (Strings)
- «ساختارها» (Structures)
- «آرایههای سلولی» (Cell Arrays)
بهکارگیری آرایه سلولی در بسیاری از موارد میتواند مفید باشد. میتوانیم از آنها برای ذخیره رشتههایی با طول متفاوت استفاده کنیم. این آرایهها همچنین برای ذخیره آرایههای عددی با اندازههای مختلف، مانند «مربعهای جادویی» (Magic Squares) نیز مناسب هستند.
آرایه سلولی در متلب چیست؟
«آرایه سلولی» (Cell Array)، «نوع دادهای» (Data Type) در متلب بهشمار میرود که محفظههای دادهایِ «اندیسدار» (Indexed) بهنام «سلول» (Cells) را برایمان فراهم میکند. هر کدام از این سلولها میتوانند هر نوع دادهای را در خود جای دهند.
آرایه سلولی در متلب، میتوانند حاوی فهرستهای متنی، ترکیبی از اعداد و متن یا آرایههای عددی با ابعاد مختلف باشند. برای ارجاع به مجموعهای از سلولها میتوانیم اندیس آنها را بین «پرانتز» ( )قرار دهیم. همچنین برای دسترسی به محتویات سلولها، اندیس آنها درون «آکولاد» { }مینویسیم.
![آشنایی با آرایه سلولی در متلب](https://blog.faradars.org/wp-content/uploads/2023/07/cell-array-1-1.jpg)
روش ایجاد آرایه سلولی در متلب چیست ؟
اگر بخواهیم دادههایی را درون «آرایه سلولی» ذخیره کنیم، لازم است تا بهشکلی که در ادامه آمده است، آرایه سلولی را بهوسیله «عملگرِ ساختِ آرایه سلولی» یعنی { }، ایجاد کنیم.
1C = {1,2,3;
2 'text',rand(5,10,2),{11; 22; 33}}
خروجی این دستور، در ادامه آمده است.
C=2×3 cell array {[ 1]} {[ 2]} {[ 3]} {'text'} {5x10x2 double} {3x1 cell}همچنین، در صورت نیاز میتوانیم، بهشکلی که در ادامه آمده است، با استفاده از { }، آرایه سلولی خالی ایجاد کنیم.
1C = {}
نتیجه این دستور نیز، در ادامه آمده است.
C = 0x0 empty cell array
تابع cell مربوط به آرایه سلولی در متلب چیست؟
برای اینکه بتوانیم آرایه سلولی با اندازه مورد نظر بسازیم، از تابع cell کمک میگیریم. یعنی میتوانیم با استفاده ازcell، آرایه سلولی را ایجاد و در آینده، آن را با «دادهای»، مقداردهی کنیم.cellهمچنین میتواند ساختارهای دادهای خاصی را از زبانهای جاوا، دات نت و پایتون گرفته و به آرایه سلولی متلب تبدیل کند. در ادامه این مطلب، برخی از نمونهها و همچنین نحوه استفاده از استفاده از تابعcellرا با هم مرور میکنیم.
![ایجاد آرایه سلولی در متلب با تابع cell](https://blog.faradars.org/wp-content/uploads/2023/07/cellarray-2.jpg)
نحوه ایجاد آرایه سلولی مربعی در متلب چگونه است؟
برای ساخت آرایه سلولی خالی، میتوانیم از دستوری که در ادامه آورده شده است، استفاده کنیم.
1C = cell(n)
آرگومانn، مقداری بهصورت «عدد صحیح» (Integer) میگیرد و اندازه آرایه سلولی مربعی (تعداد سلولها در ردیف و ستون) را مشخص میکند. این دستور، آرایه سلولی خالیCبا ابعادn * n را بر میگرداند. در ادامه، مثالی را بیان کردیم که آرایه سلولی مربعی-شکل و خالی، با ابعاد3 * 3ایجاد میکند.
1C = cell(3)
در رابطه با مقدارnلازم است تا به نکاتی که در ادامه آمده است، توجه کنیم.
- اگر مقدار n برابر با «صفر» باشد، آنگاه C، آرایه سلولی خالی را بر میگرداند.
- اگر n دارای مقداری منفی باشد، بهطور پیشفرض، «صفر» در نظر گرفته میشود.
- از نوع دادههایuint32، uint16، uint8، int64، int32، int16، int8، single، doubleو uint64 پشتیبانی میکند.
نتیجه اجرای این دستور، در ادامه آورده شده است.
C=3×3 cell array {0x0 double} {0x0 double} {0x0 double} {0x0 double} {0x0 double} {0x0 double} {0x0 double} {0x0 double} {0x0 double}
نحوه ایجاد ایجاد آرایه سلولی با ابعاد دلخواه در متلب چگونه است؟
برای ایجاد آرایه سلولی خالی با ابعاد sz1 * ... * szN (بهطوریکه sz1,...,szN اندازه هر بُعد را نشان میدهد)، دستوری که در ادامه آمده است را بهکار میبریم.
1C = cell(2,3)
اجرای این دستور، آرایهای سلولی با ابعاد2 * 3میسازد. باید توجه داشته باشیم که ابعاد آرایه سلولی با اندازهای از نوع «عدد صحیح» (Integer Values) مشخص میشود.
- اگر اندازه هر کدام از ابعاد، برابر با «صفر» باشد، آنگاه C، آرایه سلولی خالی را بر میگرداند.
- اگر اندازه هر کدام از ابعاد، «منفی» باشد، بهطور پیشفرض، «صفر» در نظر گرفته میشود.
- بعد از بُعد دوم،ابعادی که اندازهای برابر با «یک» دارند، نادیده گرفته میشوند. بهعنوان مثال، دستورcell(3,1,1,1) ، آرایه سلولی خالی با ابعاد3 * 1 را تولید میکند.
- از نوع دادههایuint32، uint16، uint8، int64، int32، int16، int8، single، double و uint64 پشتیبانی میکند.
![ایجاد آرایه سلولی در متلب](https://blog.faradars.org/wp-content/uploads/2023/07/cellarray-4-1.jpg)
برای مثال، اگر بخواهیم آرایه سلولی ۳ بُعدی با ابعاد 3 * 4 * 2 بسازیم، از دستوری که در ادامه آمده است، استفاده میکنیم.
1C = cell(3,4,2);
2size(C)
خروجی این دستور را در ادامه میبینیم.
ans = 1×3 3 4 2
نحوه ایجاد آرایه سلولی با ابعاد برداری در متلب چگونه است؟
برای اینکه آرایه سلولی خالی با ابعاد برداریِ مورد نظر بسازیم، لازم است تا تابعcell را بهصورتی که در ادامه آمده است، بهکار ببریم.
1C = cell(sz)
اندازهCبهوسیله بردارِ اندازهsz مشخص میشود. برای نمونه، دستور cell([2 3]) ، آرایه سلولی با ابعاد 2 * 3 بر میگرداند. szیا «بردار اندازه»، برداری سطری، از اعدادِ صحیح است. هر عنصرsz، اندازه بُعد متناظر با جایگاهش را نشان میدهد.
- اگر اندازه هر یک از ابعاد، برابر با «صفر» باشد، آنگاه nC، آرایه سلولی خالی را بر میگرداند.
- اگر اندازه هر کدام از ابعاد، «منفی» باشد، بهطور پیشفرض، «صفر» در نظر گرفته میشود.
- از بُعد دوم به بعد، ابعادی که اندازهای برابر با «یک» داشته باشند، نادیده گرفته میشوند. بهعنوان مثال، دستورcell(3,1,1,1) ، آرایه سلولی خالی با ابعاد3 * 1را تولید میکند.
- از نوع دادههایuint32، uint16، uint8، int64، int32، int16، int8، single، double و uint64 پشتیبانی میکند.
بهعنوان مثال، اگر «بردار اندازه» برابر با sz = [2 3 4] باشد، آنگاه آرایه سلولی خالی با ابعاد2 * 3 * 4ایجاد میشود. لازم به ذکر است که خروجی این دستورات بهصورت آرایهای سلولی برگردانده میشود.
![ایجاد آرایه سلولی در متلب](https://blog.faradars.org/wp-content/uploads/2023/07/cellarray-3-1.jpg)
تبدیل ساختار داده های زبان های دیگر به آرایه سلولی متلب چگونه است؟
برای اینکه آرایه جاوا، آرایه دات نت یا توالیهای موجود در زبان پایتون را به آرایه سلولی متلب تبدیل کنیم، از تابعcellبهشکلی که در ادامه آمده است، استفاده میکنیم.
1D = cell(obj)
obj بهعنوان ورودیِ این دستور (آرایهای که بهعنوان ورودی میگیرد)، میتواند یکی از مواردی باشد که در ادامه فهرست شدهاند.
- شی یا آرایه جاوا
- آرایه دات نت از نوع System.String یا System.Object
- انواع توالی موجود در زبان پایتون
لازم به ذکر است که خروجی این دستور نیز در نهایت، بهصورت آرایه سلولی خواهد بود.
مثال هایی از آرایه سلولی در متلب
در این قسمت، مثالهایی را از مبحث آرایههای سلولی در متلب را بیان کردهایم.
مثالی برای ایجاد آرایه سلولی و گسترش آن در متلب
همانطور که بیان شد، برای نگهداری از دادههای مرتبط بههم که «انواع دادهای» (Data Types) مختلفی دارند، میتوانیم از آرایه سلولی استفاده کنیم. هر سلول میتواند حاوی یک مورد از این دادهها باشد. برای اشاره به عناصر آرایه سلولی، از نمایهسازیِ (Indexing) آرایه استفاده میکنیم.
میخواهیم آرایه سلولی در متلب بسازیم که حاوی چندین مقدار دمای خوانده شده در تاریخی معین باشد. «تاریخ» را بهعنوان بردار کاراکتری'2017-08-16' و «دما» را بهصورت آرایه[56 67 78] از نوع داده Double در نظر میگیریم. برای ذخیره این موارد دادهای در آرایه سلولی، لازم است تا آنها را بهصورتی که در ادامه آمده است، مابین ۲ علامت «آکولاد» یا{ }قرار دهیم.
1C = {'2017-08-16',[56 67 78]}
خروجی این دستور، مقدار آرایه سلولیCاست که در ادامه آمده است.
C=1×2 cell array<br> {'2017-08-16'} {[56 67 78]}
اکنون میخواهیم خوانشهایی دیگر (از دما) که در تاریخهای دیگر صورت گرفته است را به آرایه سلولی اضافه کنیم. یکی از راههایی که برای این کار وجود دارد این است که از عملگر «انتساب» (علامت مساوی) برای گسترش دادن آرایه، بهشکلی که در ادامه آمده است، استفاده کنیم.
1C(2,:) = {'2017-08-17',[58 69 79]};
2C(3,:) = {'2017-08-18',[60 68 81]}
خروجی این دستورات، در ادامه آمده است.
C=3×2 cell array {'2017-08-16'} {[56 67 78]} {'2017-08-17'} {[58 69 79]} {'2017-08-18'} {[60 68 81]}
مثالی برای دسترسی به آرایه سلولی در متلب
با دستوری که در ادامه آمده است میتوانیم به اولین سطر ازCبا استفاده از ( )دسترسی داشته باشیم.
1C(1,:)
خروجی این دستور، آرایهای سلولی است که زیر مجموعهای از آرایه سلولی اصلی محسوب میشود.
ans=1×2 cell array {'2017-08-16'} {[56 67 78]}اکنون اگر بخواهیم به «محتویات» سلول، دسترسی داشته باشیم از{ }کمک میگیریم.
1C{1,2}
همانطور که در خروجی مشاهده میشود با این روش میتوانیم به «داده» موجود در سلول مورد نظر، دسترسی پیدا کنیم.
ans = 1×3 56 67 78
ایجاد آرایه سلولی در متلب با ابعاد آرایه موجود چگونه است؟
ایجاد آرایه سلولی خالی با استفاده از تابع cell ، معادل این است که «ماتریسی خالی» را به «آخرین ایندکس آرایه سلولی جدید» اختصاص بدهیم. بهعنوان مثال، ۲ دستوری که در ادامه نوشتهایم، باهم برابرند.
1C = cell(3,4,2);
2C{3,4,2} = [];
نمایه سازی آرایه سلولی در مطلب چیست؟
در ادامه، نمایهسازی با استفاده از «پرانتر» و همچنین «آکولاد» را توضیح میدهیم.
- برای تنظیم یا بازیابی محتویات آرایه سلولی در متلب، از «آکولاد» یا{ } استفاده میکنیم.
- برای «نمایهسازی» یا «شاخصگذاری» (Indexing) در آرایه سلولی، با هدف فراهم کردن زیر مجموعهای از سلولها در « آرایه سلولی» دیگر، از «پرانتر» یا( ) استفاده میکنیم.
![نمونه هایی از آرایه سلولی در متلب](https://blog.faradars.org/wp-content/uploads/2023/07/cellarray-5.jpg)
توابع مرتبط با cell کدام اند؟
در این قسمت میخواهیم برخی از توابع مرتبط با آرایه سلولی را مورد بررسی قرار دهیم. عناوین توابع مورد نظر را در قالب جدولی در ادامه بیان کردهایم.
تابع | عملکرد |
cell2mat | برای تبدیل آرایه سلولی به آرایهای معمولی بهکار میرود. |
cell2struct | آرایه سلولی را به آرایه ساختاری تبدیل میکند. |
cell2table | برای تبدیل آرایه سلولی به جدول، مورد استفاده قرار میگیرد. |
mat2cell | آرایه معمولی را به آرایه سلولی (که سلولهای آن حاوی زیر آرایه هستند) تبدیل میکند. |
struct2cell | ساختاری را میگیرد و سپس آن را به آرایه سلولی تبدیل میکند. |
table2cell | جدولی را دریافت و آن را به آرایه سلولی تبدیل میکند. |
iscell | تعیین میکند که آیا ورودی، آرایهای سلولی است یا خیر. |
num2cell | آرایه معمولی را به آرایه سلولی تبدیل میکند. |
در ادامه این مطلب، هر کدام از این توابع را مورد بررسی قرار میدهیم.
عملکرد تابع cell2mat چگونه است؟
برای تبدیل آرایه سلولی به آرایهای معمولی از تابعcell2mat بهشکل زیر استفاده میکنیم.
1A = cell2mat(C)
آرگومانCآرایهای سلولی است که میخواهیم آن را به آرایهای معمولی تبدیل کنیم. باید توجه داشته باشیم که عناصر موجود در آرایه سلولی، همگی باید نوع داده یکسانی داشته باشند و آرایه حاصل، یعنیA نیز از همین نوع داده خواهد بود.
![](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2023/07/ell2mat.png.webp)
نکته دیگری که لازم است به آن دقت کنیم، این است که محتویات آرایه سلولیCباید توانایی ادغام در قالب مستطیلی «N-بُعدی» را داشته باشند. در غیر اینصورت، نتایج مطلوبی به دنبال نخواهد داشت.
عملکرد تابع cell2struct چگونه است؟
سینتکس و شکل استفاده از تابعcell2struct در ادامه آمده است.
1structArray = cell2struct(cellArray, fields, dim)
این کد، از دادههای موجود در آرایه سلولیcellArray ، «آرایهای ساختاری» (Structure Array) بهنامstructArray ایجاد میکند. آرگومانfields نام فیلدها را برای آرایه ساختاری تعیین میکند. این آرگومان میتواند آرایهای کاراکتری، آرایهای سلولی از بردارهای کاراکتری یا آرایهای رشتهای باشد. آرگومان dim نیز تعیین میکند که کدام محورِ آرایه سلولی، برای ساخت آرایه ساختاری بهکار برده شود. (برای تعیینdimمیبایست ازdoubleعددی استفاده شود).
![نمونه هایی از آرایه سلولی در متلب](https://blog.faradars.org/wp-content/uploads/2023/07/cellarray-8.jpg)
برای ایجاد آرایه ساختاری با فیلدهایی که از N سطرِ آرایه سلولی مشتق شدهاند،N نامِ فیلد را در آرگومان fields و عدد1 را در آرگومان dimتعیین میکنیم. همچنین، برای ساخت آرایه ساختاری با فیلدهای گرفته شده ازM ستونِ آرایه سلولی،M نامِ فیلد را در آرگومان fields و عدد 2 را در آرگومان dimمشخص میکنیم. خروجی structArray، آرایهای ساختاری شاملNفیلد (برابر با تعداد فیلدهای آرگومان ورودی fields) است. تعداد فیلدها در ساختار به دست آمده، باید با تعداد سلولها در راستای بُعدdim که قصد تبدیل آن را داریم، برابر باشد.
عملکرد تابع cell2table چگونه است؟
روش استفاده از این تابع، در ادامه بیان شده است.
1T = cell2table(C)
2T = cell2table(C,Name,Value)
عبارتT = cell2table(C) محتویات آرایه سلولی C با ابعاد m * nرا به جدولT با ابعادm * n تبدیل میکند. به این صورت که هر ستون ازCدادههای متغیرTرا فراهم میکند.
برای ایجاد نامهای متغیر در جدول خروجی، cell2tableشماره ستونها را به نام آرایه ورودی اضافه میکند. اگر آرایه ورودی نامی نداشته باشد، cell2tableمتغیرها را در قالبVar1 ، ... و VarN نامگذاری میکند که در آن،Nتعداد ستونها درCاست.
عبارتT = cell2table(C,Name,Value) جدولی را از آرایه سلولی C میسازد همراه با گزینههایی اضافی که بهوسیله یک یا چند آرگومان زوج «نام،مقدار» (Name,Value) تعیین میشود. برای نمونه، ما میتوانیم نامهای سطر یا نامهای متغیر را برای قراردادن در جدول مشخص کنیم.
![تابع cell2table تبدیل آرایه سلولی به جدول در متلب](https://blog.faradars.org/wp-content/uploads/2023/07/cellarray-6.jpg)
عملکرد تابع mat2cell چگونه است؟
این تابع را بهشکلی که در ادامه آمده است، میتوانیم مورد استفاده قرار دهیم.
1C = mat2cell(A,dim1Dist,...,dimNDist)
2C = mat2cell(A,rowDist)
عبارتC = mat2cell(A,dim1Dist,...,dimNDist) آرایهA را به آرایههایی کوچکتر تقسیم میکند و بهصورت آرایه سلولی بهنامC بر میگرداند. چگونگی تقسیم سطرها، ستونها و ابعاد بالاتر A (در صورت لزوم و اگر عملی باشد) بهوسیله بردارdim1Dist,...,dimNDistتعیین میشود. آرایههای کوچکتر درCمیتوانند اندازههای مختلفی داشته باشند.A همچنین میتواند هر نوع دادههای را شامل شود.
عملکرد تابع struct2cell چگونه است؟
برای تبدیل ساختار به آرایه سلولی میتوانیم از تابعstruct2cell بهشکلی که در ادامه آمده است، استفاده کنیم.
1C = struct2cell(S)
آرایه سلولیCحاوی مقادیری است که از فیلدهایS کپی شده است. با توجه داشته باشیم که تابعstruct2cellنام فیلدها را بر نمیگرداند. برای برگرداندن نام فیلدها در یک آرایه سلولی، میبایست تابعfieldnamesرا بهکار ببریم.
عملکرد تابع table2cell چگونه است؟
برای تبدیل جدول یا جدول زمانی به آرایه سلولیC، از این تابع استفاده میکنیم. نحوه استفاده از آن را در ادامه مشاهده میکنید.
1C = table2cell(T)
هر متغیر موجود در جدولTتبدیل به ستونی از سلولها در آرایه سلولیCمیشود. لازم بهذکر است که Cخصوصیات جدول درT.Properties را در بر نمیگیرد.
- اگر T جدولی بههمراه نامهای سطر باشد، C نامهای مربوط به سطر را شامل نمیشود.
- اگر T جدولزمانی (Timetable) باشد، C زمانهای سطر را در بر نمیگیرد.
![تابع table2cell تبدیل جدول به آرایه سلولی در متلب](https://blog.faradars.org/wp-content/uploads/2023/07/cellarray-7-2.jpg)
عملکرد تابع iscell چگونه است؟
اگر بخواهیم نوع ورودی را از این نظر که آرایه سلولی است یا خیر، تشخیص دهیم از تابعiscell بهشکلی که در ادامه آمده است، استفاده میکنیم.
1tf = iscell(A)
آرگومانAآرایه ورودی از هر نوع دادهای میتواند باشد. اگرA آرایه سلولی باشدtf مقدار1 یا (true)در غیر اینصورت مقدار 0 یاfalseرا بر میگرداند.
عملکرد تابع num2cell چگونه است؟
عملکرد تابعnum2cellبه این صورت است که آرایهAرا به آرایه سلولیC تبدیل میکند. این کار با جایگذاری هر یک از عناصر آرایهAدرون سلول جداگانهای از آرایه سلولیC صورت میگیرد. این تابع میتواند برای تبدیل هر نوع آرایه ای (حتی غیر عددی) نیز بهکار گرفته شود. سینتکس تابع num2cell ، در ادامه آمده است.
1C = num2cell(A)
2C = num2cell(A,dim)
عبارتnum2cell(A,dim) محتویات A را در سلولهای جداگانهای از C قرا میدهد. dimمشخص میکند که کدام بُعد A در هر سلول قرار میگیرد و میتواند مقداری عددی یا برداری از اَبعاد باشد. برای نمونه، اگرA شامل ۲ سطر و ۳ ستون باشد، آنگاه مواردی که در ادامه آمده است را میتوانیم برای در نظر بگیریم.
- num2cell(A,1) آرایه سلولیCبا ابعاد1 * 3 را میسازد که هر سلول حاوی ستونی2 * 1ازAاست.
- num2cell(A,2) آرایه سلولیCبا ابعاد2 * 1را میسازد که هر سلول حاوی سطری1 * 3ازAاست.
- num2cell(A,[1 2]) آرایه سلولیCبا ابعاد1 * 1را میسازد که این سلول حاوی کل آرایهAاست.
سوالات پر تکرار
در این قسمت، برخی از سوالات رایج در رابطه با آرایه سلولی در متلب را بههمراه پاسخ متناظر آنها، بیان کردهایم.
کاربرد آرایه سلولی در متلب چیست؟
آرایه سلولی در متلب، در مواردی مانند کار با دادههای غیرجدولی کاربرد دارد.
برای نگهداری مجموعه ای از داده با نوع متفاوت در متلب چه کنیم؟
آرایههای سلولی در متلب، میتوانند دادههای عمومی و همچنین دادههای ناهمگن بدون ساختار را نگهداری کنند.
نحوه ساخت آرایه سلولی در متلب چگونه است؟
اگر بخواهیم دادههای خود را در آرایه سلولی قرار دهیم. از عملگر ساخت آرایه سلولی، یعنی «آکولاد» استفاده میکنیم.
![آرایه سلولی در متلب](https://blog.faradars.org/wp-content/uploads/2023/07/cellarray-1.jpg)
جمعبندی
در این مطلب از مجله فرادرس، موضوع آرایه سلولی در متلب را مورد بررسی قرار دادیم و علاوه بر آشنایی با تابعcell، نحوه ایجاد آرایه سلولی در ابعاد موردنظر و همچنین سایر موارد مرتبط با آرایه سلولی در متلب را نیز بیان کردیم.
سلولها میتوانند حاوی هر نوع داده دلخواه باشند. به این ترتیب، آرایهای از سلولها، این امکان را برای برنامه نویس فراهم میکند تا انواع مختلف دادهها را در ساختاری آرایه مانند نگهداری کنند. این توانایی، روشی عالی برای کار با دادههای واقعی محسوب میشود. آرایه سلولی در متلب، در مواردی مانند کار با دادههای غیر جدولی که میخواهیم با «شاخص» (Index) عددی به آن دسترسی داشته باشیم هم میتواند مفید باشد.