آرایه سلولی در متلب چیست؟
متلب (MATLAB) یک نرمافزار محاسباتی و برنامهنویسی است که توسط شرکت MathWorks توسعه داده شده است. نام “MATLAB” از ترکیب دو واژه “Matrix” و “Laboratory” به وجود آمده است و به همین دلیل، تمرکز اصلی آن بر روی محاسبات ماتریسی و عددی است.
انواع دادههای موجود در متلب
متلب نرم افزار بسیار قدرتمندی است از این رو انواع دادههای مختلف را پشتیبانی می کند. در این نرم افزار، انواع دادههای مختلفی وجود دارد که هر کدام کاربرد خاصی دارند. در زیر به برخی از مهمترین انواع دادهها در متلب اشاره میکنم:
1- عدد حقیقی (Double) در متلب
- نوع پیشفرض برای ذخیره اعداد.
- شامل اعداد اعشاری و صحیح است.
- مثال: a = 3.14;
2- عدد صحیح (Integer) در متلب
- شامل انواع مختلفی از اعداد صحیح:
- Int8: اعداد صحیح 8 بیتی
- Int16: اعداد صحیح 16 بیتی
- Int32: اعداد صحیح 32 بیتی
- Int64: اعداد صحیح 64 بیتی
- uInt8: اعداد صحیح بدون علامت 8 بیتی
- uInt16: اعداد صحیح بدون علامت 16 بیتی
- uInt32: اعداد صحیح بدون علامت 32 بیتی
- uInt64: اعداد صحیح بدون علامت 64 بیتی
3- عدد منطقی (Logical)
- شامل دو حالت: (1) true و (0) false.
- معمولاً برای شرایط و تصمیمگیریها استفاده میشود.
- مثال: a = true;
4- رشته (Character Array یا String)
- آرایهای از کاراکترها.
- میتواند به صورت رشتههای متنی ذخیره شود.
- مثال: str = ‘Hello, World!’;
- از نسخه 2016 به بعد، متلب از نوع دادهای به نام string نیز پشتیبانی میکند.
5- آرایه (Array)
- متلب به طور طبیعی با آرایهها کار میکند.
- میتواند یک بعدی (وکتور)، دو بعدی (ماتریس) یا چند بعدی باشد.
- مثال: A = [1, 2, 3; 4, 5, 6];
6- ساختار (Structure)
- نوع دادهای که میتواند مجموعهای از فیلدها با نامهای مختلف داشته باشد.
- مناسب برای ذخیرهسازی دادههای پیچیده.
مثال:
- ;’name = ‘Alice
- ;age = 30
7- آرایه سلولی (Cell Array)
- نوعی آرایه که میتواند انواع مختلف دادهها را در خود نگه دارد.
مثال:
;C = {1, ‘Hello’, [1, 2, 3] }
8- تابع (Function)
- متلب همچنین از توابع به عنوان نوع داده پشتیبانی میکند، که میتوانند به عنوان ورودی یا خروجی استفاده شوند.
9- جدول (Table)
- نوع دادهای که برای ذخیرهسازی دادههای جدولی و سازمانیافته مناسب است.
مثال:
;T = table([1;2], {‘Alice’; ‘Bob’}, ‘VariableNames’, {‘ID’, ‘Name’})
10- زمان و تاریخ (Datetime)
- نوع دادهای برای مدیریت تاریخ و زمان.
مثال:
;dt = datetime(‘now’)
[/vc_column_text][/vc_column][/vc_row] آرایههای سلولی (Cell Arrays) در متلب نوع خاصی از آرایهها هستند که به شما این امکان را میدهند که انواع مختلف دادهها را در یک ساختار واحد ذخیره کنید. برخلاف آرایههای معمولی که فقط میتوانند دادههای همنوع (مثلاً فقط عددی یا فقط رشتهای) را نگه دارند، آرایههای سلولی میتوانند ترکیبی از انواع مختلف دادهها را شامل شوند. در حقیقت هر عنصر یک آرایه سلولی میتواند نوع متفاوتی از داده را در خود نگه دارد، از جمله اعداد، رشتهها، ماتریسها و حتی دیگر آرایههای سلولی. استفاده از آرایه سلولی در انجام پروژه متلب بسیار کاربردی و مهم هستند. همچنین عناصر آرایههای سلولی میتوانند اندازههای متفاوتی داشته باشند. به عنوان مثال، میتوانید یک عنصر را به عنوان یک رشته و عنصر دیگر را به عنوان یک ماتریس ذخیره کنید. برای ایجاد یک آرایه سلولی از آکولاد {} استفاده میشود. مثال: C = {1, ‘Hello’, [1, 2, 3]}; برای دسترسی به عناصر آرایه سلولی، از آکولاد {} برای دسترسی به محتوای واقعی و از پرانتز () برای دسترسی به خود سلولها استفاده میشود. مثال: value = C{2}; % دسترسی به “Hello” cellValue = C(1); %دسترسی به اولین سلول (که شامل عدد 1 است) عملکردها متلب توابع و عملکردهای خاصی برای کار با آرایههای سلولی ارائه میدهد، مانند cellfun که میتواند یک تابع را به هر عنصر در آرایه سلولی اعمال کند. فرض کنید میخواهید اطلاعات مربوط به چند نفر را ذخیره کنید، شامل نام، سن و نمرات: people = { ‘Alice’, 30, [85, 90, 95]; ‘Bob’, 25, [78, 82, 88]; ‘Charlie’, 35, [92, 94, 96] }; % دسترسی به نام دومین نفر nameOfSecondPerson = people{2, 1}; % “Bob” % دسترسی به نمرات اولین نفر scoresOfFirstPerson = people{1, 3}; % [85, 90, 95] آرایههای سلولی در متلب ابزاری قدرتمند برای ذخیره و مدیریت دادههای متنوع هستند. برای دسترسی به عناصر آرایههای سلولی و کار با آنها، از تابع cell استفاده میشود. برای ایجاد یک آرایه سلولی میتوانید از تابع cell یا با استفاده از براکتهای {} استفاده کنید: C = cell(2, 3); % ایجاد یک آرایه سلولی 2 در 3 خالی یا C = {1, ‘text’, [1, 2, 3]; 4, rand(2), ‘another text’}; تغییر محتوای یک سلول C{1, 1} = 10; % تغییر محتوای سلول در ردیف ۱ و ستون ۱ به ۱۰ دسترسی به خود سلول cellValue = C (1, 2); % دسترسی به خود سلول (به عنوان یک آرایه سلولی) با توجه به توضیحات فوق به مثال کاربردی زیر توجه کنید: % ایجاد آرایه سلولی C = {1, ‘hello’, [1, 2, 3]; 4, rand(2), ‘world’}; % دسترسی به محتوای یک سلول firstElement = C{1, 1}; %1 secondElement = C{1, 2}; %’hello’ % تغییر محتوای یک سلول C{2, 1} = 5; % تغییر محتوای ردیف ۲ و ستون ۱ به ۵ % نمایش آرایه سلولی disp(C); در این کد آرایهای از انواع مختلف دادهها را ایجاد کردیم که نحوه دسترسی و تغییر محتوای آنها را نشان میدهد. برای ایجاد یک آرایه سلولی با ابعاد دلخواه در متلب، میتوانید از تابع cell استفاده کنید. این تابع به شما این امکان را میدهد که یک آرایه سلولی خالی با ابعاد مشخص ایجاد کنید. سپس میتوانید محتوای آن را به دلخواه پر کنید. در ادامه یک مثال کامل از ایجاد و پر کردن یک آرایه سلولی با ابعاد دلخواه را ببینید: % ایجاد آرایه سلولی با ابعاد ۳x۴ C = cell(3, 4); % پر کردن آرایه سلولی C{1, 1} = 10; C{1, 2} = ‘Hello’; C{1, 3} = [1, 2, 3]; C{1, 4} = rand(2); C{2, 1} = {1, 2}; C{2, 2} = pi; C{2, 3} = ‘World’; C{2, 4} = magic(3); C{3, 1} = true; C{3, 2} = [5; 6]; C{3, 3} = ‘MATLAB’; C{3, 4} = {rand(1, 5)}; % نمایش محتویات آرایه سلولی disp(C); این کد یک آرایه سلولی با ابعاد ۳x۴ ایجاد کرده و آن را با انواع مختلف دادهها پر میکند. اگر بخواهید ابعاد آرایه سلولی را به صورت یک بردار تعریف کنید، میتوانید از تابع cell به همراه تابع num2cell استفاده کنید. ابتدا ابعاد آرایه سلولی را به صورت یک بردار تعریف کنید. به عنوان مثال، برای یک آرایه سلولی ۳x۴ dims = [3, 4]; سپس از تابع cell برای ایجاد آرایه سلولی استفاده کنید: C = cell(dims); حالا میتوانید آرایه سلولی را با دادههای مختلف پر کنید. در ادامه به مثال زیر توجه کنید: % تعریف ابعاد به صورت بردار dims = [3, 4]; % ایجاد آرایه سلولی با ابعاد مشخص C = cell(dims); % پر کردن آرایه سلولی C{1, 1} = 10; C{1, 2} = ‘Hello’; C{1, 3} = [1, 2, 3]; C{1, 4} = rand(2); C{2, 1} = {1, 2}; C{2, 2} = pi; C{2, 3} = ‘World’; C{2, 4} = magic(3); C{3, 1} = true; C{3, 2} = [5; 6]; C{3, 3} = ‘MATLAB’; C{3, 4} = {rand(1, 5)}; % نمایش محتویات آرایه سلولی disp(C); همانطور که متوجه شدید این کد یک آرایه سلولی با ابعاد مشخص را ایجاد کرده و آن را با انواع مختلف دادهها پر میکند. برای تبدیل ساختار دادههای زبانهای دیگر به آرایه سلولی در متلب، باید ابتدا نوع دادهها و ساختار آنها را بررسی کنید. در ادامه چند مثال برای تبدیل دادهها از زبانهای مختلف به آرایه سلولی متلب آوردایم: اگر شما دادههایی دارید که در یک آرایه NumPy در Python ذخیره شدهاند، میتوانید آنها را به متلب منتقل کنید. این کار معمولاً از طریق فایلهای CSV یا با استفاده از MATLAB Engine API برای Python انجام میشود. مثال با استفاده از فایل CSV: # Python: ایجاد یک آرایه NumPy و ذخیره آن به عنوان CSV import numpy as np data = np.array([[1, 2, 3], [4, 5, 6]]) np.savetxt(“data.csv”, data, delimiter=”,”) سپس در متلب: % متلب: بارگذاری دادهها از CSV و تبدیل به آرایه سلولی data = csvread(‘data.csv’); cellArray = num2cell(data); اگر دادهها به صورت دیکشنری در Python ذخیره شدهاند: # Python: ایجاد یک دیکشنری data_dict = {‘a’: 1, ‘b’: [2, 3], ‘c’: ‘hello’} # ذخیره به عنوان JSON import json with open(‘data.json’, ‘w’) as f: json.dump(data_dict, f) در متلب: % متلب: بارگذاری دیکشنری از JSON و تبدیل به آرایه سلولی jsonData = jsondecode(fileread(‘data.json’)); cellArray = {jsonData.a, jsonData.b, jsonData.c}; اگر شما دادههایی دارید که در یک آرایه معمولی MATLAB ذخیره شدهاند، میتوانید به سادگی از num2cell استفاده کنید: % ایجاد یک آرایه عددی dataArray = [1, 2; 3, 4]; % تبدیل به آرایه سلولی cellArray = num2cell(dataArray); اگر دادهها از R آمده باشند، میتوانید آنها را به فرمت CSV یا RData ذخیره کنید و سپس در متلب بارگذاری کنید. مثال با استفاده از CSV: # R: ایجاد یک DataFrame و ذخیره به عنوان CSV data <- data.frame(a = c(1, 2), b = c(3, 4)) write.csv(data, “data.csv”, row.names = FALSE) در متلب: % متلب: بارگذاری دادهها از CSV و تبدیل به آرایه سلولی data = readtable(‘data.csv’); cellArray = table2cell(data); تبدیل دادهها از زبانهای مختلف به آرایه سلولی متلب معمولاً شامل مراحل زیر است: این روشها بستگی به نوع دادههای شما دارند و ممکن است نیاز به تنظیمات بیشتری داشته باشند. در متلب، آرایههای سلولی (cell arrays) نوع خاصی از دادهها هستند که میتوانند انواع مختلفی از دادهها را در خود نگه دارند. متلب توابع متعددی برای کار با آرایههای سلولی ارائه میدهد. در زیر برخی از مهمترین توابع مرتبط با آرایههای سلولی را آوردهایم: num2cell: تبدیل یک آرایه عددی به آرایه سلولی. A = [1, 2; 3, 4]; C = num2cell(A); cell2mat: تبدیل یک آرایه سلولی که شامل مقادیر عددی است به یک آرایه عددی. A = cell2mat(C); cellfun: اعمال یک تابع به هر عنصر از آرایه سلولی. مثال زیر مربع هر عنصر را به دست می آورد: result = cellfun(@(x) x^2, C); size: برای بدست آوردن اندازه آرایه سلولی. length: برای بدست آوردن طول بزرگترین بعد آرایه سلولی. isempty: بررسی اینکه آیا آرایه سلولی خالی است یا خیر. cat: الحاق آرایههای سلولی در ابعاد مختلف. horzcat و vertcat: الحاق افقی و عمودی آرایههای سلولی. C(Index) = [ ] : حذف عناصر خاص از آرایه سلولی. findcell: جستجوی عنصر خاص در آرایه سلولی (نیاز به تعریف تابع). این توابع و روشها به شما کمک میکنند تا به راحتی با آرایههای سلولی در متلب کار کنید و عملیات مختلفی را بر روی آنها انجام دهید. آرایه سلولی در متلب یکی از ابزارهای بسیار مهم و کاربردی برای کار بر روی داده ها مانند دادههای متغیر، رشته، عدد صحیح یا اعشاری، ماتریس، تصویر و حتی توابع می باشد. به کمک آرایه سلولی میتوانید داد ههای غیر مرتبط را در یک آرایه جا دهید و به راحتی به آن دسترسی پیدا کنید.مفهوم آرایه های سلولی در متلب
ایجاد آرایه های سلولی در متلب
دسترسی به عناصر در آرایه سلولی متلب
مثال کاربردی
تابع cell در آرایه سلولی متلب
ایجاد آرایه سلولی با ابعاد دلخواه در متلب
ایجاد آرایه سلولی با ابعاد برداری در متلب
نحوه تبدیل ساختار دادههای زبانهای دیگر به آرایه سلولی متلب
تبدیل آرایههای NumPy (Python) به آرایه سلولی متلب
تبدیل دیکشنری (Python) به آرایه سلولی متلب
تبدیل آرایههای MATLAB به آرایه سلولی
تبدیل دادههای R به آرایه سلولی متلب
انواع توابع مرتبط با cell در متلب
در پایان
0 دیدگاه