رسم 2 یا چند شکل
آموزش متلب رسم شکل در متلب شکل دوبعدی در متلب

رسم 2 یا چند شکل

نمایش چندین منحنی در یک شکل :

معمولا بسیار پیش می آید که بخواهیم چندین منحنی را در یک شکل نمایش بدهیم تا بتوانیم آنها را با یکدیگر مقایسه کنیم، اما متلب به هر دستور ترسیم شکل که می رسد، یک پنجره جدید باز کرده و منحنی را در آن نمایش می دهد. برای تغییر این وضعیت، می توانیم از دستور hold استفاده کنیم. این دستور، مشخص می کند که منحنی جدید باید در پنجره شکل قبلی که رسم شده است، ترسیم شود (hold on) و یا اینکه یک پنجره جدید باز شده و سپس رسم شود (hold off). چنانچه دستور hold on را اجرا کنیم، از آن به بعد، تمامی منحنی هایی که متلب باید در پنجره های جدید نمایش دهد را در شکل همان پنجره ای که قبلا باز شده است، نمایش می دهد. به مثال زیر توجه کنید :

مثال :

 

ezplot(‘x^2’,[-3,3])
hold on
ezplot(‘x^2-2’,[-3,3])

نتیجه :

(matlab) آموزش متلب

مشاهده می کنید که هر دو منحنی، در یک شکل رسم شده اند.
حال چنانچه پس از استفاده از دستور hold on ، بخواهیم منحنی های بعدی به طور جداگانه رسم شوند، باید دستور hold off را اجرا کنیم.

رسم چندین منحنی در یک شکل با دستور plot :

با استفاده از دستور plot نیز می توانیم چندین منحنی را در یک شکل رسم کنیم. به مثال زیر توجه کنید :

مثال :

 

x=-3:0.1:3;
plot(x,x.^2 ,x,x.^2-2)

نتیجه :

(matlab) آموزش متلب

همان طور که مشاهده می کنید، دستور plot به صورت خودکار، منحنی ها را با رنگ های متفاوتی نمایش می دهد (برخلاف استفاده از hold on که خود باید رنگ های متفاوتی برای منحنی ها تعریف کنیم).

 

رسم چند شکل کنار هم در یک پنجره با دستور subplot در متلب :

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

مثال :

فرض کنید بخواهیم 4 تابع زیر را با دستور ezplot رسم کنیم :

y=x
y=x2
y=x3
y=x4

و همچنین بخواهیم که نتیجه به صورت 4 شکل جداگانه، اما در یک پنجره و در کنار هم نمایش داده شود. برای این منظور، کدهای زیر را می نویسیم :

subplot(2,2,1)
ezplot(‘x’,[-3,3])
title(‘y=x’)

subplot(2,2,2)
ezplot(‘x^2’,[-3,3])
title(‘y=x^2’)

subplot(2,2,3)
ezplot(‘x^3’,[-3,3])
title(‘y=x^3’)

subplot(2,2,4)
ezplot(‘x^4’,[-3,3])
title(‘y=x^4’)

نتیجه :

(matlab) آموزش متلب

مشاهده می کنید که چهار شکل مورد نظرمان، در کنار هم و در یک پنجره نمایش داده شده اند. اما اکنون شرح بدهیم که چگونه با دستور subplot ، تعداد شکل ها و موقعیت آنها در کنار هم را تعیین کرده ایم. اگر به کدها نگاه کنید، متوجه خواهید شد که برای هر شکل، 3 خط کد نوشته ایم، خط اول با دستور subplot است که تعیین می کند موقعیت آن شکل در کنار سایر شکل ها چگونه باید باشد، خط دوم با دستور ezplot است که برای رسم تابع مورد نظرمان می باشد و خط سوم عنوانی را به شکل اختصاص می دهد تا آن را در کنار سایر شکل ها، به راحتی تشخیص بدهیم. چون 4 شکل داریم، بنابراین 4 بار از دستور subplot در کدها استفاده کردیم. برای 4 شکل، مقادیری که باید درون پرانتز هر دستور subplot نوشته شود، به صورت شکل زیر می باشد :

(matlab) آموزش متلب

با توجه به شکل بالا، مشاهده می کنید که در پنجره نمایش شکل ها، 2 ردیف و 2 ستون متشکل از شکل ها خواهیم داشت. بنابراین عدد اول درون پرانتز دستور subplot ، نشان دهنده تعداد کل ردیف ها و عدد دوم درون پرانتز دستور subplot ، نشان دهنده تعداد کل ستون ها برای چیدمان شکل ها در کنار هم می باشد. برای هر موقعیت، یک عدد در نظر گرفته شده است که چون 4 شکل داریم، این عدد از 1 تا 4 می تواند باشد. این عدد، سومین عدد، درون پرانتز دستور subplot خواهد بود. بنابراین با دستور subplot ، قبل از هر دستور ezplot ، موقعیت شکل مربوط به آن دستور ezplot را مشخص کرده ایم.

 

رسم دو منحنی در یک شکل، با یک محور افقی مشترک و دو محور عمودی غیر مشترک (قرار گرفته در سمت چپ و راست شکل)، با دستور plotyy در متلب :

گاهی نیاز داریم که دو منحنی دوبعدی را در یک شکل رسم کنیم، به گونه ای که دارای محور افقی مشترک، اما محور عمودی غیر مشترک باشند. دستور plotyy می تواند برای رسم این موارد به کار رود. این دستور، دو منحنی را به دو رنگ متفاوت نمایش می دهد.

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

مثال :

 

clear all
close all
clc

X1=0:0.1:2*pi;
Y1=sin(X1);

X2=0:0.1:2*pi;
Y2=cos(X2);

plotyy(X1,Y1,X2,Y2)

xlabel(‘x axis’)
ylabel(‘y axis’)

نتیجه :

رسم دو منحنی در یک شکل، با یک محور افقی مشترک و دو محور عمودی غیر مشترک (قرار گرفته در  سمت چپ و راست شکل)، با دستور plotyy در متلب

رسم دو یا چند شکل با محورهای مختصات غیر مشترک و اندازه های متفاوت، بر روی یکدیگر، در متلب :

در مباحثی دیگر از سایت کلیدستان شرح دادیم که چنانچه بخواهیم دو یا چند شکل را در یک پنجره رسم کنیم، باید از دستور hold on استفاده کنیم، اما در آن موارد، محورهای مختصات مشترک بود، اکنون فرض کنید که بخواهیم محورهای مختصات شکل ها متفاوت باشد و همچنین اندازه شکل ها را نیز متفاوت در نظر بگیریم. به عنوان مثال می خواهیم نتیجه نهایی به شکل زیر باشد :

(matlab) آموزش متلب

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

مثال :

ابتدا یکی از شکل های مورد نظرمان را به طور جداگانه رسم می کنیم (می خواهیم هر شکل را به صورت جداگانه ببینیم) :

clc
clear all
close all

pcolor([1:10;1:10]);

سه خط اول کدها برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب می باشد.

نتیجه :

(matlab) آموزش متلب

اکنون شکل دوم را به صورت جداگانه رسم می کنیم :

clc
clear all
close all

mesh(peaks(20));

نتیجه :

(matlab) آموزش متلب

اکنون آن کدها را کنار می گذاریم و می خواهیم کدهایی را بنویسیم که دو شکل را در یک پنجره نمایش بدهد و شکل دوم، با محورهای مختصات جداگانه و البته با اندازه ای کوچکتر، بر روی بخشی از شکل اول نمایش داده شود. کدها به صورت زیر می باشند :

clc
clear all
close all

axes(‘position’,[0.1  0.1  0.8  0.8])
pcolor([1:10;1:10]);
axes(‘position’,[0.34  0.3  0.4  0.5])
mesh(peaks(20));

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

[x_start  y_start  x_length  y_length]

این 4 عدد، بر اساس اندازه پنجره ای هستند که شکل در آن نمایش داده می شود. به جای x_start باید مقدار متناظر برای محل شروع محور مختصات را بر اساس محور افقی (محور x) بنویسیم. به جای y_start نیز باید مقدار متناظر برای محل شروع محور مختصات را بر اساس محور عمودی (محور y) بنویسیم. دو مقدار x_length و y_length نیز میزان طول محورهای مختصات در دو جهت محور x و y را تعیین می کنند.

نتیجه :

(matlab) آموزش متلب
سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *