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

P O U R I A

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

  1. رسم مقادیر یک ماتریس دو بعدی به صورت یک سطح برجسته با دستور surf در متلب
  2. رسم مقادیر یک ماتریس دو بعدی به صورت یک سطح برجسته و خطوطی در زیر سطح با دستور surfc در متلب
  3. رسم مقادیر یک ماتریس دو بعدی به صورت سیمی (mesh) با دستور mesh در متلب
  4. رسم مقادیر یک ماتریس دو بعدی به صورت سیمی (mesh) و خطوطی در زیر آن با دستور meshc در متلب
  5. رسم مقادیر یک ماتریس دو بعدی به صورت سیمی (mesh) و شامل دیواره های کناری با دستور meshz در متلب
  6. رسم مقادیر یک ماتریس دو بعدی به صورت نواری (ribbon)، با دستور ribbon در متلب
  7. رسم مقادیر یک ماتریس دو بعدی به صورت آبشاری (waterfall)، با دستور waterfall در متلب
  8. حذف (عدم نمایش) خط های مربوط به رسم سیمی (دستوراتی مثل mesh و meshc و ...) مقادیر یک ماتریس دو بعدی، هنگام قرار گرفتن در پشت سایر خط ها، با دستور hidden در متلب
  9. ساخت ماتریس دو بعدی برای رسم شکل های سه بعدی ، با دستور meshgrid در متلب
  10. ساخت یک تابع مناسب برای تست کردن دستورهای ترسیم ، با دستور peaks در متلب
  11. رسم خطوط به صورت سه بعدی با دستور plot3 در متلب

منبع:kelidestan.com
 
آخرین ویرایش:

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
رسم مقادیر یک ماتریس دو بعدی به صورت یک سطح برجسته با دستور surf در متلب

رسم مقادیر یک ماتریس دو بعدی به صورت یک سطح برجسته با دستور surf در متلب

چنانچه یک ماتریس دو بعدی داشته باشیم و بخواهیم توسط یک شکل سه بعدی، مقادیر عناصر آن را ببینیم، می توانیم از دستور surf در متلب استفاده کنیم. دستور surf ، مقادیر ماتریس را به صورت یک سطح برجسته و دارای پستی و بلندی، نمایش می دهد. به مثال زیر توجه کنید :

مثال :


کد:
[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]
 
x=-[COLOR=#3333FF]10[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]10[/COLOR];
y=-[COLOR=#3333FF]10[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]10[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=-[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]surf[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]

نتیجه :

ابتدا با دو حلقه for ، ماتریس z را با فرمولی دلخواه، برای بازه های تعریف شده x و y ساخته ایم. سپس با دستورsurf(x,y,z) ، مقادیر ماتریس z را برای مقادیر مختلف x و y ، رسم کرده ایم. دستورات xlabel و ylabel و zlabel ، برای تعیین عنوان، برای سه محور مختصات، به کار رفته اند.matlab139.jpg
نکته :
چنانچه بخواهیم مقادیر متناظر با هر رنگ، در کنار شکل، نمایش داده شود، باید بعد از دستور surf ، دستور colorbar را در خط بعدی بنویسیم. همان مثال قبل را دوباره می نویسیم :

مثال :


کد:
[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]
 
x=-[COLOR=#3333FF]10[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]10[/COLOR];
y=-[COLOR=#3333FF]10[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]10[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=-[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]surf[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]colorbar[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]

نتیجه :

matlab140.jpg
مشاهده می کنید که مقادیر متناظر با رنگ ها، در کنار شکل، نمایش داده شده اند.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
رسم مقادیر یک ماتریس دو بعدی به صورت یک سطح برجسته و خطوطی در زیر سطح با دستور surfc در متلب

رسم مقادیر یک ماتریس دو بعدی به صورت یک سطح برجسته و خطوطی در زیر سطح با دستور surfc در متلب

دستور surfc ، مشابه دستور surf است و تنها خطوطی به آن افزوده شده است. شاید قبلا با دستور surf آشنایی داشته باشید و بدانید که دستور surf در متلب، برای ترسیم مقادیر یک ماتریس دو بعدی، به صورت یک سطح برجسته دارای پستی و بلندی، به کار می رود. تفاوت دستور surfc با دستور surf ، این است که دستور surfc ، علاوه بر این که سطح برجسته را بر حسب مقادیر ماتریس رسم می کند، یک سری خطوط رنگی را نیز در زیر این سطح برجسته نمایش می دهد که می تواند به درک بهتر مقادیر ماتریس کمک نماید. هر خط دارای رنگ متفاوتی خواهد بود و نقاط روی هر خط، دارای مقدار برابری می باشند. به مثال زیر توجه کنید :

مثال :


کد:
[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]
 
x=-[COLOR=#3333FF]10[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]10[/COLOR];
y=-[COLOR=#3333FF]10[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]10[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=-[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]surfc[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
ابتدا با دو حلقه for ، ماتریس z را با فرمولی دلخواه، برای بازه های تعریف شده x و y ، ساخته ایم. سپس با دستورsurfc(x,y,z) ، مقادیر ماتریس z را برای مقادیر مختلف x و y ، رسم کرده ایم. دستورات xlabel و ylabel و zlabel ، برای تعیین عنوان، برای سه محور مختصات، به کار رفته اند.

نتیجه :

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

نکته :
چنانچه بخواهیم مقادیر متناظر با هر رنگ، در کنار شکل، نمایش داده شود، باید بعد از دستور surfc ، دستور colorbar را در خط بعدی بنویسیم. همان مثال قبل را دوباره می نویسیم :

مثال :

کد:
[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]
 
x=-[COLOR=#3333FF]10[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]10[/COLOR];
y=-[COLOR=#3333FF]10[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]10[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=-[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]surfc[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]colorbar[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :

matlab142.jpg
 

P O U R I A

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

رسم مقادیر یک ماتریس دو بعدی به صورت سیمی (mesh) با دستور mesh در متلب

با دستور mesh در متلب، می توانیم مقادیر عناصر یک ماتریس دو بعدی را به صورت سیمی (mesh) رسم کنیم. به مثال زیر توجه کنید :

مثال :
ماتریس z را به صورت تابعی دلخواه از x و y می نویسیم و سپس آن را با دستور mesh رسم می کنیم :
کد:
[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]
 
x=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
y=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]mesh[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :

matlab145.jpg
نکته :
چنانچه بخواهیم مقادیر عددی متناظر با رنگ سیم ها را بدانیم، می توانیم با دستور colorbar ، این مقادیر را در کنار شکل نمایش بدهیم. به مثال زیر توجه کنید :

مثال :
همان مثال قبل را این بار با دستور colorbar می نویسیم :
کد:
[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]
 
x=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
y=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]mesh[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]colorbar[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


matlab146.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
رسم مقادیر یک ماتریس دو بعدی به صورت سیمی (mesh) و خطوطی در زیر آن با دستور meshc در متلب

رسم مقادیر یک ماتریس دو بعدی به صورت سیمی (mesh) و خطوطی در زیر آن با دستور meshc در متلب

دستور meshc در متلب، مشابه دستور mesh ، مقادیر یک ماتریس دو بعدی را به صورت سیمی (mesh)، رسم می کند و تنها تفاوت آن با دستور mesh این است که علاوه بر رسم مقادیر به صورت سیمی (mesh)، یک سری خطوط رنگی نیز در زیر شکل رسم می کند. مقادیر روی هر خط رنگی، برابر هستند و بنابراین با مشاهده این خطوط رنگی، می توانیم درک بهتری از نحوه تغییرات مقادیر عناصر ماتریس دو بعدی داشته باشیم. به مثال زیر توجه کنید :

مثال :
ماتریس دو بعدی z را به صورت تابعی دلخواه از x و y تعریف می کنیم و سپس آن را با دستور meshc رسم می کنیم :
کد:
[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]
 
x=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
y=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]meshc[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]

نتیجه :

matlab147.jpg
نقاط روی هر خط رنگی در زیر شکل، دارای مقادیر یکسانی می باشند.

نکته :
با استفاده از دستور colorbar ، می توانیم مقادیر متناظر با هر رنگ را در کنار شکل نمایش بدهیم. به مثال زیر توجه کنید :

مثال :
همان مثال قبل را این بار با دستور colorbar می نویسیم :
کد:
[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]
 
x=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
y=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]meshc[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]colorbar[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :

matlab148.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
رسم مقادیر یک ماتریس دو بعدی به صورت سیمی (mesh) و شامل دیواره های کناری با دستور meshz در متلب

رسم مقادیر یک ماتریس دو بعدی به صورت سیمی (mesh) و شامل دیواره های کناری با دستور meshz در متلب

دستور meshz در متلب، همانند دستور mesh برای رسم مقادیر یک ماتریس دو بعدی، به صورت سیمی (mesh)، به کار می رود، اما دستور meshz ، علاوه بر رسم مقادیر به صورت سیمی، یک سری دیواره های کناری (صفحه مرجع) را نیز در کنار شکل اصلی رسم می کند. به مثال زیر توجه کنید :

مثال :


کد:
[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]
 
x=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
y=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
meshz[COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
با دو حقه for ، ماتریس z را بر حسب مقادیر مختلف x و y تعریف کرده ایم. دستور length ، برای تعیین طول یک بردار به کار می رود. دستور zeros نیز برای ایجاد ماتریسی می باشد که مقدار تمامی عناصر آن، برابر صفر باشد. دستورات xlabel و ylabel ، برای اختصاص دادن عنوان به محورهای مختصات به کار رفته اند.

نتیجه :

matlab149.jpg
نکته :
اگر بخواهیم مقادیر متناظر با رنگ های به کار رفته را بدانیم، باید پس از دستور meshz ، از دستور colorbar استفاده نماییم تا مقادیر متناظر با هر رنگ، در کنار شکل، نمایش داده شود. به مثال زیر توجه کنید :

مثال :
این بار همان مثال قبلی را با دستور colorbar می نویسیم :
کد:
[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]
 
x=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
y=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
meshz[COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]colorbar[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


matlab150.jpg
 

P O U R I A

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

رسم مقادیر یک ماتریس دو بعدی به صورت نواری (ribbon)، با دستور ribbon در متلب

با دستور ribbon در متلب، می توانیم مقادیر عناصر یک ماتریس دو بعدی را به صورت نواری (ribbon) رسم کنیم. به مثال زیر توجه کنید :


مثال :
کد:
[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]
  
x=-[COLOR=#3333FF]4[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]4[/COLOR];
y=-[COLOR=#3333FF]4[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]4[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]ribbon[/COLOR][COLOR=#008800]([/COLOR]y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :

319.jpg
نکته :
چنانچه بخواهیم مقادیر عددی متناظر با رنگ نوار ها را بدانیم، می توانیم با دستور colorbar ، این مقادیر را در کنار شکل نمایش بدهیم. به مثال زیر توجه کنید :

مثال :
همان مثال قبل را این بار با دستور colorbar می نویسیم :
کد:
[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]
  
x=-[COLOR=#3333FF]4[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]4[/COLOR];
y=-[COLOR=#3333FF]4[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]4[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]ribbon[/COLOR][COLOR=#008800]([/COLOR]y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]colorbar[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :

320.jpg
مثال :
مثال خود نرم افزار متلب :
کد:
[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]
  
[COLOR=#008800][[/COLOR]x,y[COLOR=#008800]][/COLOR] = [COLOR=#0000FF]meshgrid[/COLOR][COLOR=#008800]([/COLOR]-[COLOR=#3333FF]3[/COLOR]:.5:[COLOR=#3333FF]3[/COLOR],-[COLOR=#3333FF]3[/COLOR]:.1:[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR];
z = [COLOR=#0000FF]peaks[/COLOR][COLOR=#008800]([/COLOR]x,y[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]ribbon[/COLOR][COLOR=#008800]([/COLOR]y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'X'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'Y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'Z'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]colormap[/COLOR] [COLOR=#0000FF]hsv[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :

321.jpg
 

P O U R I A

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

رسم مقادیر یک ماتریس دو بعدی به صورت آبشاری (waterfall)، با دستور waterfall در متلب

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

مثال :


کد:
[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]
  
x=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
y=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]waterfall[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :

322.jpg
نکته :
چنانچه بخواهیم مقادیر عددی متناظر با رنگ سیم ها را بدانیم، می توانیم با دستور colorbar ، این مقادیر را در کنار شکل نمایش بدهیم. به مثال زیر توجه کنید :

مثال :
همان مثال قبل را این بار با دستور colorbar می نویسیم :
کد:
[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]
  
x=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
y=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]waterfall[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]colorbar[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]

نتیجه :

323.jpg
مثال :
مثال خود نرم افزار متلب :
کد:
[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]
  
[COLOR=#008800][[/COLOR]X,Y,Z[COLOR=#008800]][/COLOR] = [COLOR=#0000FF]peaks[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]30[/COLOR][COLOR=#008800])[/COLOR];
[COLOR=#0000FF]waterfall[/COLOR][COLOR=#008800]([/COLOR]X,Y,Z[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]

نتیجه :

324.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حذف (عدم نمایش) خط های مربوط به رسم سیمی (دستوراتی مثل mesh و meshc و ...) مقادیر یک ماتریس دو بعدی

حذف (عدم نمایش) خط های مربوط به رسم سیمی (دستوراتی مثل mesh و meshc و ...) مقادیر یک ماتریس دو بعدی

حذف (عدم نمایش) خط های مربوط به رسم سیمی (دستوراتی مثل mesh و meshc و ...) مقادیر یک ماتریس دو بعدی،
هنگام قرار گرفتن در پشت سایر خط ها،
با دستور hidden در متلب
همان طور که می دانید، دستوراتی مثل mesh و meshc و ... در متلب، برای رسم مقادیر یک ماتریس دو بعدی به صورت سیمی (mesh) به کار می رود. با استفاده از دستور hidden ، می توانیم خط هایی (سیم هایی) که پشت سر سایر خط ها قرار می گیرند را حذف کنیم. یعنی با اجرای دستور زیر :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]hidden[/COLOR] on[/FONT]
[/FONT][/COLOR]
اما بدون اجرای دستور فوق نیز، به طور پیش فرض، این خط ها حذف می شوند (یعنی به صورت پیش فرض، hidden به صورت on در نظر گرفته می شود)، اما چنانچه دستور زیر را اجرا کنیم، خط هایی که پشت سر سایر خط ها قرار می گیرند نیز نمایش داده می شوند :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]hidden[/COLOR] off[/FONT]
[/FONT][/COLOR]
برای درک بهتر این موضوع، به مثال زیر توجه کنید :

مثال :
ابتدا با hidden on ، یک شکل را رسم می کنیم :
کد:
[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]
  
x=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
y=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
  
[COLOR=#0000FF]mesh[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]hidden[/COLOR] on
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :

325.jpg
اکنون همان مثال را با hidden off می نویسیم :
کد:
[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]
  
x=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
y=-[COLOR=#3333FF]8[/COLOR]:[COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]8[/COLOR];
L=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
z=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR]L,L[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]for[/COLOR] nn=[COLOR=#3333FF]1[/COLOR]:L
    [COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]1[/COLOR]:L
        R=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800]([/COLOR]nn[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR]+y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
        z[COLOR=#008800]([/COLOR]nn,mm[COLOR=#008800])[/COLOR]=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]R[COLOR=#008800])[/COLOR]/R;
    [COLOR=#0000FF]end[/COLOR]
[COLOR=#0000FF]end[/COLOR]
  
[COLOR=#0000FF]mesh[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]hidden[/COLOR] off
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :

326.jpg
مثال :
مثال خود نرم افزار متلب :ابتدا با hidden on ، یک شکل را رسم می کنیم :

کد:
[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]
  
[COLOR=#0000FF]mesh[/COLOR][COLOR=#008800]([/COLOR][COLOR=#0000FF]peaks[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]colormap[/COLOR] [COLOR=#0000FF]hsv[/COLOR][/FONT]
[/FONT][/COLOR]

نتیجه :
327.jpg

اکنون همان مثال را با hidden off می نویسیم :
کد:
[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]
  
[COLOR=#0000FF]mesh[/COLOR][COLOR=#008800]([/COLOR][COLOR=#0000FF]peaks[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]colormap[/COLOR] [COLOR=#0000FF]hsv[/COLOR]
[COLOR=#0000FF]hidden[/COLOR] off[/FONT]
[/FONT][/COLOR]

نتیجه :


328.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت ماتریس دو بعدی برای رسم شکل های سه بعدی ، با دستور meshgrid در متلب

ساخت ماتریس دو بعدی برای رسم شکل های سه بعدی ، با دستور meshgrid در متلب

فرض کنید بخواهیم ماتریس z را به صورت یک ماتریس دو بعدی، بر حسب مقادیر مختلف x و y ، تعریف کنیم و سپس آن را به صورت یک شکل سه بعدی (با هر دستور ترسیم سه بعدی دلخواه) رسم کنیم. برای این منظور، قبل از هر چیز باید بازه لازم برای x و y و همچنین مقادیر انتخاب شده از x و y در این بازه را تعریف کنیم. برای این منظور، می توانیم از دستور meshgrid در متلب استفاده کنیم. به مثال زیر توجه کنید :

مثال :
کد:
[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]
 
[COLOR=#008800][[/COLOR]x,y[COLOR=#008800]][/COLOR] = [COLOR=#0000FF]meshgrid[/COLOR][COLOR=#008800]([/COLOR]-[COLOR=#3333FF]4[/COLOR]:[COLOR=#3333FF]0.1[/COLOR]:[COLOR=#3333FF]4[/COLOR],-[COLOR=#3333FF]3[/COLOR]:[COLOR=#3333FF]0.1[/COLOR]:[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR]
z=[COLOR=#0000FF]sqrt[/COLOR][COLOR=#008800]([/COLOR]x.^[COLOR=#3333FF]2[/COLOR]+y.^[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR];
 
[COLOR=#0000FF]mesh[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]colorbar[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :
ابتدا با دستور [x,y] = meshgrid(-4:0.1:4,-3:0.1:3) تعیین کرده ایم که بازه تعریفی برای x ، به صورت -4:0.1:4 و بازه تعریفی برای y ، به صورت -3:0.1:3 باشد. سپس مقادیر z را به صورت دلخواه، بر حسب مقادیر مختلف x و y ، به دست آورده ایم. دقت کنید که به کار بردن علامت نقطه (.) بعد از x و y ، ضروری می باشد و معنی آن این است که هر عنصر x یا y ، به توان 2 برسد، نه اینکه کل ماتریس x یا y به توان 2 برسد. سپس ماتریس z را با دستور mesh ، به صورت سه بعدی رسم کرده ایم. دستور colorbar برای این است که مقدار متناظر با رنگ های مختلف، در کنار شکل، نمایش داده شود. دستورات xlabel و ylabel و zlabel ، برای تعیین عنوان برای محورهای مختصات، به کار رفته اند.

matlab151.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت یک تابع مناسب برای تست کردن دستورهای ترسیم ، با دستور peaks در متلب

ساخت یک تابع مناسب برای تست کردن دستورهای ترسیم ، با دستور peaks در متلب

دستور peaks در متلب، برای ساخت یک تابع به کار می رود که این تابع معمولا برای تست کردن دستورهای ترسیم در متلب مناسب می باشد. در واقع در میان توابع مختلف، بر حسب تجربه مشخص شده است که دستور peaks ، خیلی خوب می تواند عملکرد دستورات ترسیم مختلف را در متلب نمایش بدهد. البته در سایت کلیدستان، در مباحث آموزش دستورات ترسیم، کمتر از دستور peaks استفاده کرده ایم، زیرا معمولا همه با آن آشنایی ندارند و ممکن است باعث سردرگمی شود. برای آشنایی با شکل حاصل از دستور peaks ، به مثال زیر توجه کنید :

مثال :
کد:
[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]
 
[COLOR=#008800][[/COLOR]x,y[COLOR=#008800]][/COLOR]=[COLOR=#0000FF]meshgrid[/COLOR][COLOR=#008800]([/COLOR]-[COLOR=#3333FF]3[/COLOR]:[COLOR=#3333FF]0.1[/COLOR]:[COLOR=#3333FF]3[/COLOR],-[COLOR=#3333FF]3[/COLOR]:[COLOR=#3333FF]0.1[/COLOR]:[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR]
z=[COLOR=#0000FF]peaks[/COLOR][COLOR=#008800]([/COLOR]x,y[COLOR=#008800])[/COLOR];
 
[COLOR=#0000FF]mesh[/COLOR][COLOR=#008800]([/COLOR]x,y,z[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]axis[/COLOR][COLOR=#008800]([/COLOR][COLOR=#008800][[/COLOR]-[COLOR=#3333FF]3[/COLOR] [COLOR=#3333FF]3[/COLOR] -[COLOR=#3333FF]3[/COLOR] [COLOR=#3333FF]3[/COLOR] -[COLOR=#3333FF]10[/COLOR] [COLOR=#3333FF]5[/COLOR][COLOR=#008800]][/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'z'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
ابتدا با دستور meshgrid ، بازه هایی را برای x و y تعریف کرده ایم. در واقع دستور meshgrid ، برای تعیین مقادیری که با آنها ماتریس دو بعدی z را می سازیم، به کار می رود. سپس دستور peaks برای ساخت تابع مناسبی که گفتیم، استفاده شده است. دستور axis ، برای تعیین محدوده نمایش محورهای مختصات به کار رفته است. دستورات xlabel و ylabel و zlabel نیز برای تعیین عنوان برای محورهای مختصات می باشند.

نتیجه :

matlab152.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
رسم خطوط به صورت سه بعدی با دستور plot3 در متلب

رسم خطوط به صورت سه بعدی با دستور plot3 در متلب

دستور plot3 در متلب، برای رسم خطوط به صورت سه بعدی به کار می رود. یک مثال مشهور در این زمینه را شرح می دهیم :

مثال :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]t=[COLOR=#3333FF]0[/COLOR]:[COLOR=#0000FF]pi[/COLOR]/[COLOR=#3333FF]50[/COLOR]:[COLOR=#3333FF]10[/COLOR]*[COLOR=#0000FF]pi[/COLOR];
[COLOR=#0000FF]plot3[/COLOR][COLOR=#008800]([/COLOR][COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]t[COLOR=#008800])[/COLOR],[COLOR=#0000FF]cos[/COLOR][COLOR=#008800]([/COLOR]t[COLOR=#008800])[/COLOR],t[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'sin(t)'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'cos(t)'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]zlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'t'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]grid[/COLOR] 
[COLOR=#0000FF]axis[/COLOR] square[/FONT]
[/FONT][/COLOR]
نتیجه :
دقت شود که محور عمودی، برای متغیر t خواهد بود و دو محور افقی نیز به صورت دو تابع از متغیر t می باشند. دستورات xlabel و ylabel و zlabel ، برای تعیین عنوان برای محورهای مختصات می باشند. دستور grid نیز باعث می شود که مقیاس ها، بر روی دیواره های پشت شکل، نمایش داده شوند تا سه بعدی بودن شکل، به خوبی نمایش داده شود. دستور axis square نیز تعیین کرده است که دو محور افقی شکل، با اندازه ای یکسان، نمایش داده شوند که باعث می شود تغییرات دایره ای شکل منحنی، در جهت سطوح افقی، به خوبی مشاهده شود.

matlab153.jpg
 
بالا