رسم دو یا چند شکل با محورهای مختصات غیر مشترک و اندازه های متفاوت، بر روی یکدیگر، در متلب (MATLAB)
در مباحثی دیگر از سایت کلیدستان شرح دادیم که چنانچه بخواهیم دو یا چند شکل را در یک پنجره رسم کنیم، باید از دستور hold on استفاده کنیم، اما در آن موارد، محورهای مختصات مشترک بود، اکنون فرض کنید که بخواهیم محورهای مختصات شکل ها متفاوت باشد و همچنین اندازه شکل ها را نیز متفاوت در نظر بگیریم. به عنوان مثال می خواهیم نتیجه نهایی به شکل زیر باشد :
همان طور که مشاهده می کنید، یک شکل به صورت کوچک تر و با محورهای مختصات جداگانه، بر روی شکلی دیگر قرار گرفته است. اکنون مراحل ساخت این شکل نهایی را به صورت یک مثال شرح می دهیم :
ابتدا یکی از شکل های مورد نظرمان را به طور جداگانه رسم می کنیم (می خواهیم هر شکل را به صورت جداگانه ببینیم) :
clear all
close all
pcolor([1:10;1:10]);
سه خط اول کدها برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب می باشد.
نتیجه :
اکنون شکل دوم را به صورت جداگانه رسم می کنیم :
clear all
close all
mesh(peaks(20));
نتیجه :
اکنون آن کدها را کنار می گذاریم و می خواهیم کدهایی را بنویسیم که دو شکل را در یک پنجره نمایش بدهد و شکل دوم، با محورهای مختصات جداگانه و البته با اندازه ای کوچکتر، بر روی بخشی از شکل اول نمایش داده شود. کدها به صورت زیر می باشند :
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 عدد تعریف شود که ساختار کلی آن به صورت زیر می باشد :
این 4 عدد، بر اساس اندازه پنجره ای هستند که شکل در آن نمایش داده می شود. به جای x_start باید مقدار متناظر برای محل شروع محور مختصات را بر اساس محور افقی (محور x) بنویسیم. به جای y_start نیز باید مقدار متناظر برای محل شروع محور مختصات را بر اساس محور عمودی (محور y) بنویسیم. دو مقدار x_length و y_length نیز میزان طول محورهای مختصات در دو جهت محور x و y را تعیین می کنند.