12
سپتامبر

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

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

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

متلب (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;

رشته (Character Array یا String)

  • آرایه‌ای از کاراکترها.
  • می‌تواند به صورت رشته‌های متنی ذخیره شود.
  • مثال: str = ‘Hello, World!’;
  • از نسخه 2016 به بعد، متلب از نوع داده‌ای به نام string نیز پشتیبانی می‌کند.

آرایه (Array)

  • متلب به طور طبیعی با آرایه‌ها کار می‌کند.
  • می‌تواند یک بعدی (وکتور)، دو بعدی (ماتریس) یا چند بعدی باشد.
  • مثال: A = [1, 2, 3; 4, 5, 6];

ساختار (Structure)

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

مثال:

  • ;’name = ‘Alice
  • ;age = 30

آرایه سلولی (Cell Array)

  • نوعی آرایه که می‌تواند انواع مختلف داده‌ها را در خود نگه دارد.

مثال:

;C = {1, ‘Hello’, [1, 2, 3] }

تابع (Function)

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

جدول (Table)

  • نوع داده‌ای که برای ذخیره‌سازی داده‌های جدولی و سازمان‌یافته مناسب است.

مثال:

;T = table([1;2], {‘Alice’; ‘Bob’}, ‘VariableNames’, {‘ID’, ‘Name’})

زمان و تاریخ  (Datetime)

  • نوع داده‌ای برای مدیریت تاریخ و زمان.

مثال:

;dt = datetime(‘now’)

مفهوم آرایه های سلولی

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

آرایه‌های سلولی (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 استفاده می‌شود.

برای ایجاد یک آرایه سلولی می‌توانید از تابع 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) به آرایه سلولی متلب

اگر شما داده‌هایی دارید که در یک آرایه 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 ذخیره شده‌اند:

# 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 به آرایه سلولی

 

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

اگر شما داده‌هایی دارید که در یک آرایه معمولی MATLAB ذخیره شده‌اند، می‌توانید به سادگی از num2cell استفاده کنید:

% ایجاد یک آرایه عددی

dataArray = [1, 2; 3, 4];

% تبدیل به آرایه سلولی

cellArray = num2cell(dataArray);

 

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

اگر داده‌ها از 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);

تبدیل داده‌ها از زبان‌های مختلف به آرایه سلولی متلب معمولاً شامل مراحل زیر است:

  1. ذخیره‌سازی داده‌ها در یک فرمت مشترک (مثل CSV یا JSON).
  2. بارگذاری داده‌ها در متلب.
  3. تبدیل داده‌ها به آرایه سلولی با استفاده از توابع مناسب.

این روش‌ها بستگی به نوع داده‌های شما دارند و ممکن است نیاز به تنظیمات بیشتری داشته باشند.

انواع توابع مرتبط با cell در متلب

در متلب، آرایه‌های سلولی (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: جستجوی عنصر خاص در آرایه سلولی (نیاز به تعریف تابع).

 

این توابع و روش‌ها به شما کمک می‌کنند تا به راحتی با آرایه‌های سلولی در متلب کار کنید و عملیات مختلفی را بر روی آن‌ها انجام دهید.

 

در پایان

آرایه سلولی در متلب یکی از ابزارهای بسیار مهم و کاربردی برای کار بر روی داده ها مانند داده‌های متغیر، رشته، عدد صحیح یا اعشاری، ماتریس، تصویر و حتی توابع می باشد. به کمک آرایه سلولی میتوانید داد ههای غیر مرتبط را در یک آرایه جا دهید و به راحتی به آن دسترسی پیدا کنید.