ترسيم داده ها در متلب matlab

نمودارهاي ٢ بعدي مجموعه دستورات زير نحوه ترسيم يك تابع بر حسب يك متغير مستقل را نشان مي دهد:

» x=linspace(0,2); y=x.*exp(-x);
» plot(x,y)

» grid
» xlabel(‘x’)
» ylabel(‘y’)
» title(‘y=x.e^{-x}’)
» text(1,.2,’centre’)

qq3

هفت خط فوق به ترتيب اعمال زير را انجام مي دهند:

1-  بردار متغيرهاي مستقل (x) و تابع (y) را ايجاد مي كند.

2-  مقادير y را بر حسب x رسم مي نمايد.

3-  شبكه را به نمودار مي افزايد.

4-  توضيح محور افقي را مي نويسد.

5-  توضيح محور عمودي را مي نويسد.

6-   تيتر نمودار را در بالاي آن مي نويسد.

7-  در نقطه مورد نظر ( در اين مثال نقطه (٢/٠ و ١) ) متغير حرفــي مشـخص شـده (در ايـن مثـال centre ) را مي نويسد.

 

مي توانيد نمودار ايجاد شده را به كمك دســتور Save As در منـوي File پنجـره نمـودار، ذخـيره نماييد.  اين دستور نمودار را در يك پرونده كه نام آن را خودتان وارد خواهيد كرد و دنباله آن .ffig مي باشد ذخيره مي كند.  شما مي توانيد ايــن نمـودار را در دفعـات بعـدي كـار بـا MATLAB بـا استفاده از دستور open بازيابي نماييد.

 

در هنگام رسم نمودارها مي توانيد از علامتهاي مختلف (بجاي خط) براي رسم توابع استفاده كنيــد.

همچنين مي توانيد بيش از يك تابع را در يك نمودار نمايش دهيد.

» plot(x,y,’.’,x,x.*sin(x),’-.’)

و در صورت لزوم نام توابع را نيز در همان نمودار نشان دهيد.

» legend(‘x.e^{-x}’,’x.sin x’)

 

مي توانيد بيش از يك نمودار را در يك پنجره نشان دهيد:

» subplot(2,1,1), plot(x,y)

» ylabel(‘x.e^{-x}’)

» subplot(2,1,2), plot(x,x.*sin(x))

» ylabel(‘x.sin x’)

 

دو عدد اول در دستور subplot تعداد تقسيمات صفحه را معين مي كنند (سطري و ستوني) و عــدد سوم مكان رسم نمودار (يا تغيير روي نمودار موجود) را مشخص مي نمايد.

 

نمودار را مي توانيد با استفاده از دستور clf پاك كنيد.

» clf

 

با استفاده از دستور figure مي توانيد پنجره جديدي براي رســم نمـودار بـاز نمـائيد.  دسـتور axis حدود بالا وپايين محورهاي مختصات را به صورت يك بردار ارائه مي نمايد.

» figure(2)

» plot(x,y)

» axis ans =

         0    2.0000         0    0.4000

 

» axis([0  .5  0  .3])

در تمامي مثالهاي بالا مقادير متغير مستقل و متغير وابسته به صورت دو بردار بر حســب هـم رسـم شده اند.  در صورتي كه تابعيت متغير وابسته بر حسب متغير مستقل مشخص باشــد مـي توانيـد از دستور fplot براي رسم آن استفاده كنيد:

» fplot(‘x*exp(-x)’,[0  2])

 

آرگومان اول اين دستور يك بردار حرفي است كه مشخص كننده رابطه تابع (در صورت ساده بــودن رابطه تحليلي تابع، همانند مثال فوق) يا نام m-file حاوي تابع (كه جداگانه بايد ايجاد شــده باشـد) است.  آرگومان دوم fplot يك بردار دو عضوي است كه حد پائين و بالاي متغير مستقل را مشـخص مي كند.

 

تعدادي از دستورهاي ترسيم دو بعدي در زير آورده شده اند:

نمودار نيمه لگاريتمي (محور x لگاريتمي)semilogx(x,y)   

نمودار نيمه لگاريتمي (محور y لگاريتمي)semilogy(x,y)  

نمودار تمام لگاريتمي loglog(x,y)             

رسم در دستگاه مختصات قطبي polar(r,theta)   

نمودار ميله اي           bar(x,y)

         area(x,y)      نمودار مساحت

 

 

٥-٢   نمودارهاي ٣ بعدي دستورهاي زيادي در MATLAB براي ترسيم نمودارهاي سه بعدي وجود دارند.  يك منحنــي سـه بعدي را مي توانيد به كمك دستور plot3 ببينيد:

» t=0:.01:6*pi;

» plot3(cos(t),sin(t),t)

» xlabel(‘cos(t)’)

» ylabel(‘sin(t)’)

» zlabel(‘t’)

سطوح سه بعدي را مي توانيد با استفاده از دستور surf ترسيم كنيد:

» [x,y]=meshgrid(-pi:pi/8:pi,-pi:pi/8:pi);

» z=cos(x).*cos(y);

» surf(x,y,z)

» view(30,45)

 شبكه دو بعدي روي صفحهxy  را ايجاد مي كند.  بردارهاي ورودي به اين دستورمشخص كننده تقسيمات در جهات x و y هستند.  سطح ايجاد شده را مي توانيد بــا كمـك دسـتورshading هموار كنيد.  همچنين براي تطابق رنگها با اعداد محور z مـي توانيـد از دسـتور colorbar استفاده كنيد.

» shading interp

» colorbar

براي رسم سطوح سه بعدي از دسـتـورات ديگــري مـانند meshz ،meshc ،mesh و waterfall نـيز مي توانيد كمك بگيريد.

 

نمودارهاي ٥/٢ بعدي

نمودارهاي به اصطلاح ٥/٢ بعدي براي ديدن سطوح ٣ بعدي روي صفحـه مختصـات ٢ بعـدي بكـار مي روند.  يكي از اين روشها رسم خطوط همتراز يك سطح است.

 

» [x,y]=meshgrid(-2:.1:2,-2:.1:2);

» z=2-((x-1).^2+4*(y-1).^2+2*x.*y);

» [c,h]=contour(x,y,z,[-15  -10  -5  -2  0  0.5]);

» clabel(c,h), xlabel(‘x’), ylabel(‘y’)

qq4

آرگومان چهارم در دستور contour برداري است كه بر اساس آن منحنيهاي همــترازي كـه مقـادير عددي آنها برابر با مولفه هاي آن بردار است روي نمودار نشــان داده خواهنـد شـد.  دسـتور clabel مقادير خطوط همتراز را روي نمودار نشان مي دهد.

 

روش ديگر آن است كه سطح را از زاويه اي عمود بــر صفحـه xy نگريسـت و رنگـهاي متفـاوتي بـه مقادير مختلف z نسبت داد:

» pcolor(x,y,z)

» shading interp

» colorbar

blank

11 دیدگاه دربارهٔ «ترسيم داده ها در متلب matlab»

  1. blank

    با سلام
    کد نویسی برنامه بصورت زیر برنامه بنویسد که مبلغی رابعنوان پس انداز ازما گرفته وسود آن را حساب کرده و مقدار نهای را به ما بدهد.
    مقدار سود بانکی بصورت زیر است
    اگرمبلغ کمتر از 5000باشد سود 9%
    اگر مبلغ بین 5000تا10000باشد سود12%
    و اگر مبلغ بیشتر از 10000باشد سود15%
    با تشکر

  2. blank

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

  3. blank

    چطوری میشه توی نرم افزار متلب نمودار آنلاین کشید؟؟؟؟
    مثلا با میکرو هر لحظه مقدار adc را از طریق پورت سریال بدیم به متلب،بعدش متلب همون لحظه مقدار adc دریافتی رو روی نموداری نشون بدهو.البته توی این نمودار باید مقادیر قبلی دریافتی هم نمایش داده بشه و همچنین مقادیری که هر لحظه دریافت میشن بصورت آنلاین نمایش داده بشه.

    1. blank

      متلب این قابلیت را دارا می باشد. خود متلب در تولباکس شبکه عصبی از همین ویژگی استفاده می کند و نمودارهای آنلاین می کشد.
      شما باید مقادیر را که وارد متلب می کنید در یک بردار بریزید و در ابتدا حلقه با دستور gcf صفحه نمایش را پاک کنید و سپس نمودار بردار جدید را نمایش بدید.
      وقتی در حلقه این کار انجام بدید مقل این میمونه که در هر لحظه داره مقدار آنلاین را نمایش می دهد.
      از hold on و hold off استفاده نکنید.

  4. blank

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

  5. blank

    با سلام من میخوام یه نمودار بکشم در متلب ولی هیچ تجربه قبلی ندارم
    امکانش هست داده ها رو براتون بفرستم و در مورد دستورات راهنمایی کنید؟خیلی ضروریه
    ممنون میشم

  6. blank

    سلام خسته نباشید.از دستور polar برای رسم داده ها استفاده می کنم ولی به صورت curve به هم وصل نمیکنه نقاط رو.

دیدگاه‌ خود را بنویسید

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