[آموزش] آرایه های سلولی (cell arrays) در متلب

P O U R I A

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

  1. تبدیل یک آرایه سلولی (cell array) به آرایه عددی (numeric array)، با دستور cell2mat در متلب
  2. شمارش تعداد عناصر یک آرایه سلولی (cell array)، در متلب
  3. نمایش گرافیکی ساختار یک آرایه سلولی (cell array)، با دستور cellplot در متلب
  4. ساخت یک آرایه سلولی (cell array) شامل رشته ها (string)، از یک آرایه کاراکتری (character array)، با دستور cellstr در متلب



منبع: kelidestan.com
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تبدیل یک آرایه سلولی (cell array) به آرایه عددی (numeric array)، با دستور cell2mat در متلب

تبدیل یک آرایه سلولی (cell array) به آرایه عددی (numeric array)، با دستور cell2mat در متلب

دستور cell2mat در متلب، برای تبدیل یک آرایه سلولی (cell array) به آرایه عددی (numeric array) به کار می رود. در واقع با cell2mat می توانیم که یک آرایه سلولی را که خود شامل تعدادی ماتریس است، به یک ماتریس تنها تبدیل کنیم.

البته برای اینکه این تبدیل موفقیت آمیز باشد، باید اندازه ماتریس های موجود در آرایه سلولی، به گونه ای باشد که دستور cell2mat بتواند آنها را به هم متصل کند. یک مثال برای اندازه مناسب ماتریس های آرایه سلولی، در شکل زیر نمایش داده شده است :matlab-253.png
به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

A = [COLOR=#008800]{[/COLOR][COLOR=#008800][[/COLOR][COLOR=#3333FF]1[/COLOR][COLOR=#008800]][/COLOR] [COLOR=#008800][[/COLOR][COLOR=#3333FF]2[/COLOR] [COLOR=#3333FF]3[/COLOR] [COLOR=#3333FF]4[/COLOR][COLOR=#008800]][/COLOR]; [COLOR=#008800][[/COLOR][COLOR=#3333FF]5[/COLOR]; [COLOR=#3333FF]9[/COLOR][COLOR=#008800]][/COLOR] [COLOR=#008800][[/COLOR][COLOR=#3333FF]6[/COLOR] [COLOR=#3333FF]7[/COLOR] [COLOR=#3333FF]8[/COLOR]; [COLOR=#3333FF]10[/COLOR] [COLOR=#3333FF]11[/COLOR] [COLOR=#3333FF]12[/COLOR][COLOR=#008800]][/COLOR][COLOR=#008800]}[/COLOR]
B = cell2mat[COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A = 

    [COLOR=#008800][[/COLOR]         [COLOR=#3333FF]1[/COLOR][COLOR=#008800]][/COLOR]    [COLOR=#008800][[/COLOR]1x3 [COLOR=#0000FF]double[/COLOR][COLOR=#008800]][/COLOR]
    [COLOR=#008800][[/COLOR]2x1 [COLOR=#0000FF]double[/COLOR][COLOR=#008800]][/COLOR]    [COLOR=#008800][[/COLOR]2x3 [COLOR=#0000FF]double[/COLOR][COLOR=#008800]][/COLOR]


B =

     [COLOR=#3333FF]1[/COLOR]     [COLOR=#3333FF]2[/COLOR]     [COLOR=#3333FF]3[/COLOR]     [COLOR=#3333FF]4[/COLOR]
     [COLOR=#3333FF]5[/COLOR]     [COLOR=#3333FF]6[/COLOR]     [COLOR=#3333FF]7[/COLOR]     [COLOR=#3333FF]8[/COLOR]
     [COLOR=#3333FF]9[/COLOR]    [COLOR=#3333FF]10[/COLOR]    [COLOR=#3333FF]11[/COLOR]    [COLOR=#3333FF]12[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
شمارش تعداد عناصر یک آرایه سلولی (cell array)، در متلب

شمارش تعداد عناصر یک آرایه سلولی (cell array)، در متلب

برای شمارش تعداد عناصر یک آرایه سلولی (cell array)، ابتدا یک تابع که حاوی کد زیر است، می سازیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]function[/COLOR] n = my_numel[COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR]
    n = [COLOR=#3333FF]0[/COLOR];
    [COLOR=#0000FF]for[/COLOR] [COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR]=[COLOR=#3333FF]1[/COLOR]:numel[COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR]
        [COLOR=#0000FF]if[/COLOR] iscell[COLOR=#008800]([/COLOR]A[COLOR=#008800]{[/COLOR][COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR][COLOR=#008800]}[/COLOR][COLOR=#008800])[/COLOR]
            n = n + my_numel[COLOR=#008800]([/COLOR]A[COLOR=#008800]{[/COLOR][COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR][COLOR=#008800]}[/COLOR][COLOR=#008800])[/COLOR];
        [COLOR=#0000FF]else[/COLOR]
            n = n + numel[COLOR=#008800]([/COLOR]A[COLOR=#008800]{[/COLOR][COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR][COLOR=#008800]}[/COLOR][COLOR=#008800])[/COLOR];
        [COLOR=#0000FF]end[/COLOR]
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین تابع را به صورت یک m-file با نام my_numel ذخیره می کنیم. آنگاه برای شمارش تعداد عناصر یک آرایه سلولی به نام A ، باید کد زیر را اجرا کنیم (ارجاع به تابع my_numel) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]my_numel[COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
به مثال زیر توجه کنید :

[h=4]مثال :[/h]تابع my_numel را مطابق کدی که قبلا شرح دادیم، می سازیم. سپس کد زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]B = [COLOR=#008800]{[/COLOR][COLOR=#008800]{[/COLOR][COLOR=#008800]{[/COLOR][COLOR=#3333FF]1[/COLOR],[COLOR=#3333FF]2[/COLOR][COLOR=#008800]}[/COLOR],[COLOR=#008800]{[/COLOR][COLOR=#3333FF]3[/COLOR],[COLOR=#3333FF]4[/COLOR],[COLOR=#3333FF]5[/COLOR][COLOR=#008800]}[/COLOR][COLOR=#008800]}[/COLOR],[COLOR=#008800]{[/COLOR][COLOR=#008800]{[/COLOR][COLOR=#008800]{[/COLOR][COLOR=#3333FF]6[/COLOR][COLOR=#008800]}[/COLOR],[COLOR=#008800]{[/COLOR][COLOR=#3333FF]7[/COLOR][COLOR=#008800]}[/COLOR],[COLOR=#008800]{[/COLOR][COLOR=#3333FF]8[/COLOR][COLOR=#008800]}[/COLOR][COLOR=#008800]}[/COLOR],[COLOR=#008800]{[/COLOR][COLOR=#3333FF]9[/COLOR][COLOR=#008800]}[/COLOR][COLOR=#008800]}[/COLOR],[COLOR=#3333FF]10[/COLOR][COLOR=#008800]}[/COLOR];
my_numel[COLOR=#008800]([/COLOR]B[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =

    [COLOR=#3333FF]10[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
نمایش گرافیکی ساختار یک آرایه سلولی (cell array)، با دستور cellplot در متلب

نمایش گرافیکی ساختار یک آرایه سلولی (cell array)، با دستور cellplot در متلب

دستور cellplot در متلب، برای نمایش گرافیکی ساختار یک آرایه سلولی (cell array) به کار می رود. زمانی که ساختار یک آرایه سلولی را با دستور cellplot نمایش بدهیم، آنگاه با مشاهده شکل حاصل، می توانیم درک بهتری از ساختار آن داشته باشیم.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

A = [COLOR=#008800]{[/COLOR][COLOR=#008800]{[/COLOR][COLOR=#008800]{[/COLOR][COLOR=#3333FF]5[/COLOR],[COLOR=#3333FF]1[/COLOR],[COLOR=#3333FF]2[/COLOR][COLOR=#008800]}[/COLOR],[COLOR=#008800]{[/COLOR][COLOR=#3333FF]0[/COLOR],[COLOR=#3333FF]6[/COLOR],[COLOR=#3333FF]5[/COLOR][COLOR=#008800]}[/COLOR][COLOR=#008800]}[/COLOR],[COLOR=#008800]{[/COLOR][COLOR=#008800]{[/COLOR][COLOR=#008800]{[/COLOR][COLOR=#3333FF]9[/COLOR][COLOR=#008800]}[/COLOR],[COLOR=#008800]{[/COLOR][COLOR=#3333FF]1[/COLOR][COLOR=#008800]}[/COLOR][COLOR=#008800]}[/COLOR],[COLOR=#008800]{[/COLOR][COLOR=#3333FF]2[/COLOR][COLOR=#008800]}[/COLOR][COLOR=#008800]}[/COLOR],[COLOR=#3333FF]5[/COLOR][COLOR=#008800]}[/COLOR];
[COLOR=#0000FF]cellplot[/COLOR][COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]

matlab-254.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت یک آرایه سلولی (cell array) شامل رشته ها (string)، از یک آرایه کاراکتری (character array)، با دستور cellstr در متلب

ساخت یک آرایه سلولی (cell array) شامل رشته ها (string)، از یک آرایه کاراکتری (character array)، با دستور cellstr در متلب

فرض کنید که یک آرایه کاراکتری (character array) داشته باشیم، با استفاده از دستور cellstr در متلب، می توانیم یک آرایه سلولی (cell array) بسازیم که هر سلول (cell) آن، شامل یک ردیف از آرایه کاراکتری (character array) باشد.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
M=[COLOR=#008800][[/COLOR][COLOR=#A020F0]'abc'[/COLOR]; [COLOR=#A020F0]'def'[/COLOR]; [COLOR=#A020F0]'ghi'[/COLOR][COLOR=#008800]][/COLOR]
C=[COLOR=#0000FF]cellstr[/COLOR][COLOR=#008800]([/COLOR]M[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]whos[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب می باشد. دستور whos را به کار برده ایم تا نوع متغیرها، نمایش داده شود.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]M =

abc
def
ghi


C = 

    [COLOR=#A020F0]'abc'[/COLOR]
    [COLOR=#A020F0]'def'[/COLOR]
    [COLOR=#A020F0]'ghi'[/COLOR]

  Name      [COLOR=#0000FF]Size[/COLOR]            Bytes  [COLOR=#0000FF]Class[/COLOR]    Attributes

  C         3x1               [COLOR=#3333FF]354[/COLOR]  [COLOR=#0000FF]cell[/COLOR]               
  M         3x3                [COLOR=#3333FF]18[/COLOR]  [COLOR=#0000FF]char[/COLOR][/FONT]
[/FONT][/COLOR]
 
بالا