آموزش نرم افزار MATLAB قسمت سوم

آموزش نرم افزار MATLAB قسمت سوم
این مجموعه ی آموزشی توسط تیم وبسایت مرجع آموزش ویدیویی برنامه نویسی و برنامه نویسی تحت وب تهیه شده و تمامی حقوق محفوظ می باشد.
با سلام
در خدمت شما هستم با جلسه سوم آموزش متلب ( MATLAB ).
در این جلسه در رابطه با رسم نمودار صحبت خواهم کرد .
همانطور که میدانید نرم افزار MATLAB امکانات خوبی در زمینه رسم نمودار دارد..خیلی از نمودار های ریاضی در MATLAB به آسانی قابل رسم هستند.
از مهم ترین دستورات برای رسم نمودار میتوان به دستور plotاشاره کرد.
با استفاده از دستور زیر مشخصات کامل این دستور را میتوانید مشاهده کنید .
help plot
فرض کنید که می خواهیم نمودار سینوس را در فاصله بین صفر تا ۲*pi رسم کنیم:
t=0:0.01:2*pi;
u=sin(t);
گام متغیر t را برابر با ۰٫۰۱ قرار دادم تا وقتیکه نمودار سینوس کشیده میشه حالت شکسته نداشته باشه.
دستور رسم نمودارهای دو بعدی در متلب دستور plot است.
plot(t,u)
با اجرای دستور بالا میبینید که نمودار سینوس کشیده میشود .
در واقع دستور
plot(t,x)
عناصر بردار xرا بر حسب بردار t نظیر به نظیر به صورت نقاطی روی صفحه ی مختصات قرار میدهد.در نهایت این نقاط را بهم وصل و منحنی مورد نظر ایجاد میکند.
برای رسم نمودارهای ساده، استفاده از plot بسیار رایج است ولی این دستور را به سادگی میتوان برای رسم نمودارهای پیچیدهتر هم استفاده کرد. قطعه برنامه زیر چگونگی استفاده از این دستور را نشان میدهد:
» x=0:1.5:9
y=sqrt(x) .* (1-0.05*x)
plot(y)
x =
۰ ۱٫۵۰۰۰ ۳٫۰۰۰۰ ۴٫۵۰۰۰ ۶٫۰۰۰۰ ۷٫۵۰۰۰ ۹٫۰۰۰۰
y =
۰ ۱٫۱۳۲۹ ۱٫۴۷۲۲ ۱٫۶۴۴۰ ۱٫۷۱۴۶ ۱٫۷۱۱۶ ۱٫۶۵۰۰
»
در نمودار فوق منحنی مورد نظر باید در بازه صفر تا ۹ رسم شود ولی محور افقی بجای صفر تا ۹، بازه صفر تا هفت را نشان میدهد. بجز این ، خطوط منحنی هم دارای شکستگیهایی است. برای حل مشکل اول کافیست متغییر x هم به عنوان ورودی به تابع plot فرستاده شود. برای مشکل شکستگیهای خطوط نیز باید تعداد زیربازهها افزایش یابد. برای رسم دوباره این نمودار میتوانید از دستور زیر استفاده کنید و نتیجه را ببینید:
x=0:0.2:9
y=sqrt(x) .* (1-0.05*x)
plot(x,y)
مثلا فرض کنید می خواهیم تابع زیر را در بازه [۵،۵-] رسم کنیم
۱+cos(2x)
» x=-5:0.1:5;
y=1+cos(2*x);
plot(x,y)
»
نمودار آن به صورت زیر خواهد بود
حال فرض کنید می خواهیم رنگ نمودار را سبز و خط آن را ستاره ای کنیم ،پس می نویسیم:
plot(x,y,'g*')
نتیجه به صورت زیر است :
حالا یک مثال دیگر را بررسی میکنیم
فرض کنیم سنگی با سرعت اولیه ۶۰ در زمان صفر به طور عمودی به بالا پرتاب شود.نمودار مسافت-زمان را تا زمان ۱۲٫۳ با گام ۰٫۱ رسم کنید.
» g = 9.8;
v0 = 60 ;
t = 0: 0.1: 12.3;
x = v0*t - g/2 * t.^2 ;
» plot(t,x)
»
برای نمودار میتوان یک عنوان انتخاب کرد.برای هر یک از محور ها نیز میتوان نام مناسبی انتخاب کرد برای مثال در مثال فوق میتوانیم این دستورات را اضافه کنیم و تغییرات را ببینیم
title('Motion')
xlabel('Time')
ylabel('Displacement')
میتوان چند منحنی را نیز در یک صفحه مختصات رسم کرد
plot(x,y1,x,y2)
این دستور منحنی های y1 و y2
را بر حسب xو با دو رنگ متفاوت رسم خواهد کرد
>>x = -pi:0.1:pi;
y1 = sin (x);
y2 = cos (x);
plot(x, y1, x, y2);
>>
چند نکته
legend('sin')
xlabel('t')
دستور xlabel باعث گذاشتن برچسب بر روی محور x ها میشه. بین دو علامت ‘ ‘ هرچی بنویسید در روی محور x ها نشون داده میشه.
ylabel('u')
دستور ylabel باعث گذاشتن برچسب بر روی محور y ها، دستور title باعث گذاشتن عنوان بر روی نمودار و دستور legend باعث گذاشتن راهنما در گوشه نمودار میشه. بین دو علامت ‘ ‘ هرچی بنویسید همون نشون داده خواهد شد.
همانطور که میدانید نمودار ها همگی با رنگ پیش فرض آبی رسم میشوند. اگر بخواهید رنگ نمودار را تغییر دهید باید در همان دستور plot این کار را انجام دهید:
راه اول: تغییر رنگ به یکی از رنگهای سیاه، سفید، فیروزه ای، قرمز، سبز، آبی، زرد و بنفش.
plot(t,u,' ')
بین دو علامت ‘ ‘ هر کدام از حروف زیر را که بنویسید رنگ متناسب با حرف نوشته شده تغییر خواهد کرد:
c : فیروزه ای
m : بنفش
b: آبی
که اگر نوشته نشود هم رنگ آبی پیش فرض می باشد
r: قرمز
g: سبز
k: سیاه
w: سفید
y: زرد
برای مثال می خواهید رنگ نمودار قرمز شود:
plot(t,u,'r')
راه دوم: می خواهید از رنگهای ترکیبی دیگر استفاده کنید:
plot(t,u,'color',[r g b])
به جای سه عدد r و g و b باید عددی بین ۰ و ۱ وارد کنید. عدد مربوط به r معرف رنگ قرمز، عدد مربوط به g معرف رنگ سبز و عدد مربوط به b معرف رنگ آبی میباشد. مسلما اگر سه عدد را به صورت [۰ ۰ ۱] قرار دهید رنگ به صورت قرمز خواهد شد و اگر هر سه را برابر با ۱ قرار دهید مشکی و اگر هر سه را برابر با ۰ قرار دهید سفید خواهد شد. پش با انتخاب سه عدد بین ۰ و ۱ میلیونها رنگ می توانید داشته باشید:
plot(t,u,'color',[1 0.2 0.06])
حتما دقت کرده اید که وقتی نمودار را کشیدید با یک ضخامت پیش فرض نمودار برای شما کشیده شد. اگر که بخواهید ضخامت را هم عوض کنید باید از دستور LineWidth در دستور plot به صورت زیر استفاده کنید:
plot(t,u,'LineWidth',a)
یا
plot(t,u,'g','LineWidth',a)
یا
plot(t,u,'color',[1 .03 .5],'LineWidth',a)
منظور از a عددی است که ضخامت خط نمودار را تعیین می کنه مثلا a=2:
plot(t,u,'k','LineWidth',2)
رسم چند نمودار مجزا در یک پنجره در متلب MATLAB
بمنظور تقسیم پنجره خروجی به چند بخش میتوان از تابع subplot استفاده کرد.
شکل کلی آن به صورت زیر است :
subplot(m,n,p)
mتعداد بخش های افقی
nتعداد بخش های عمودی
pشماره بخش جاری
هر دیتور ترسیمی بعد از این دستور در مکان pام اعمال خواهد سد.خانه ها به صورت ستونی شمارش میشوند.
واضح است که مقدار pمیتواند بین ۱ و n*mباشد.در غیر این صورت خطا رخ میدهد
» x=linspace(0,2*pi,30);
subplot(2,2,1);plot(x,sin(x));
subplot(2,2,2);plot(x,cos(x));
subplot(2,2,3);plot(x,tan(x));
subplot(2,2,4);plot(x,sin(x)+cos(x));
»
خروجی کد های بالا به صورت زیر است:
فکر میکنم برای امشب کافی باشه.
در این جلسه تا حدودی به طور مقدماتی با رسم نمودار های دو بعدی آشنا شدیم..رسم نمودار خیلی گستره تر از چیزی بود که من بیان کردم..چون هدفم اینه که به طور مختصر در مورد این ها صحبت کنم تا وارد مبحث اصلی یعنی پردازش تصویر بشم. در جلسه ی بعد در مورد ساختار های تصمیم و انتخاب صحبت خواهیم کرد .
منبع: www.ilikephp.ir