در بخش اول آموزش رسم نمودارهای دو بعدی در متلب می خواهیم با دستور plot آشنا شویم. plot یکی از دستورات پرکاربرد و البته منعطف متلب است که با استفاده از آن می توان انواع نمودارهای دو بعدی را به تصویر کشید. در قسمت های بعدی این سری آموزشی هم به روش هایی برای گسترش توانایی رسم نمودار در متلب خواهیم پرداخت.
البته plot برای رسم نمودارهای پیوسته استفاده می شود و چنانچه بخواهیم نموداری گسسته از یک متغیر گسسته رسم کنیم آنگاه باید از دستور stem استفاده کنیم. در ادامه ی مطلب استفاده از هر دوی این دستورها به صورت موازی مورد بحث قرار خواهد گرفت.
دستور plot را به چند شکل مختلف می توان به کار برد که در ادامه به ترتیب در مورد آن ها صحبت خواهیم کرد.
رسم یک متغیر در مقابل اندیس خودش
همانطور که می دانیم در متلب همه ی متغیر ها به صورت ماتریسی متشکل از چندین مقدار تعریف می شود و هر ماتریس یک اندیس دارد که با استفاده از آن می توان عناصر ماتریس را جداگانه شناسایی و فراخوانی کرد. مثلا می توانیم متغیری مانند fail داشته باشیم که قرار است تعداد دفعات خطا در خواندن مقادیر سنسورها را در آن دخیره کنیم و نموداری از این متغیر را رسم کنیم.
fail = [5 2 0 3 1 6 2 1 1 0 0 3];
plot (fail);
خروجی دستور بالا نموداری شبیه شکل زیر به ما خواهد داد.
البته نمودار بالا خیلی مطلوب ما نیست و طبیعی است که بخواهیم برای مقادیر گسسته ی مثال یک نمودار گسسته رسم کنیم و به همین خاطر کد زیر را با دستور stem اجرا می کنیم.
fail = [5 2 0 3 1 6 2 1 1 0 0 3];
stem (fail);
به این ترتیب نموداری مشابه شکل زیر خواهیم داشت.
رسم دو متغیر در مقابل هم
حالا می خواهیم دو متغیر را در مقابل هم رسم کنیم. نکته ای که باید به آن دقت کنیم این است که دو متغیر لزوما باید هم اندازه باشند یعنی هر دو ماتریس های طولی با طول دقیقا یکسان باشند. برای نمونه نمودار sin را رسم می کنیم.
clc;
clear all;
close all;
x = -pi:0.01:pi;
y = sin (x);
plot(x, y);
خط ۱ اطلاعات موجود در command window متلب را پاک می کند. خط دوم کد همه ی متغیر های موجود در حافظه را پاک می کند. این دستور با پاک کردن نتایج موجود مربوط به برنامه هایی که قبلا اجرا کرده ایم از بروز مسائل ناخواسته جلوگیری می کند. خط سوم هم همه ی پنجره های فرعی متلب را می بندد. به این ترتیب بعد از اجرای سه خط اول کد بالا محیط متلب برای رسم نمودار ما آماده است.
در خط ۵ کد متغیری به نام x تعریف می کنیم. مقادیر ایم متغیر از شروع شده و با گام ۰.۰۱ به
ختم می شود. خط بعد سینوس x را ایجاد می کند و در نهایت در خط ۷ تابع را رسم می کنیم. در مورد طول متغیرها باید گفت که با توجه به اینکه متغیر y نتیجه ی اعمال تابع سینوس روی متغیر x است پس لزوما این دو متغیر با هم هم اندازه بوده و از بابت رسم آن ها مشکلی نخواهیم داشت. شکل زیر هم نمودار رسم شده را نشان می دهد.
و اگر بخواهیم همین نمودار را در حالت گسسته و با دستور stem رسم کنیم نمودار به شکل زیر خواهد بود.
رسم همزمان چند نمودار
مواردی هست که می خواهیم چند نمودار را به صورت همزامان روی یک شکل رسم کنیم یعنی چند زوج x و y داریم و می خواهیم نمودار مربوط به این زوج ها را روی شکل ببینیم مثلا می خواهیم سینوس و کسینوس را با هم مشاهده کنیم. برای این کار دستوری شبیه کد زیر نیاز خواهیم داشت.
clc;
clear all;
close all;
x = -pi:0.1:pi;
y1 = sin (x);
y2 = cos (x);
plot(x, y1, x, y2);
همانطور که از شکل دستور مشخص است در چنین مواردی باید زوج ها را به ترتیب پشت سر هم وارد کنیم. معمولا برای اینکه نموداری که به این شکل رسم می کنیم معنا دار باشد خوب است که متغیر x همه ی زوج ها مانند مثال بالا یکسان باشد ولی در متلب رعایت این نکته الزامی نیست و می توانیم زوج های x و y را به صورت کاملا دلخواه انتخاب کنیم. تنها شرطی که باید رعایت کنیم این است که طول x و y هر یک از زوج ها با هم یکسان باشد. در نهایت کد بالا نموداری مانند شکل زیر برای ما ایجاد خواهد کرد.
سلام
یه تشکر ویژه بابت مطلبی که قرار دادین
من خیلی دنبال این موضوع گشتم ولی هیچ کدوم مثل این راحت و قابل فهم نبود
واقعا ممنون
موفق باشین
سلام
خیلی ممنون از وبسایت مفیدتان 🙂
با تشکر فراوان
سلام بسیییییییار ممنون
salam.ayaa mitava az file haye exel dar rasm e nemudar dar matlab bahre gereft?
سلام علیکم
من خودم تا حالا اینم کارو نکردم ولی فکر می کنم راه داشته باشه؛ اگر به راه حلی برخوردم شما رو هم در جریان خواهم گذاشت.
با استفاده از دستور XLSREAD می توانید فایل های اکسل رو وارد متلب کنید.
سلام
توابع چند ضابطه ای رو چجوری و با چه دستوری تو متلب بنویسم؟؟؟
سلام دوست عزیز،
برای ایجاد توابع چند ضابطه ای در متلب می تونید از if استفاده کنید. به این ترتیب مثلا اگر x کوچکتر از a بود مقدار y را با استفاده از دستور ضابطه ی ۱ و در غیر این صورت با استفاده از دستور ضابطه ی ۲ محاسبه می کنیم.
سلام
با مختصات چند نقطه چطور نمودار رسم کنیم؟؟؟؟
سلام دوست عزیز
متاسفانه بنده درست متوجه منظورتون نشدم. اگر ممکنه بیشتر توضیح بدید تا بتونم کمکتون کنم.
خدا قوت
ممنون
یه سوالی داشتم
برای رسم نمودار در متلب باید کدوم پارت های متلب را رسم کنیم؟؟
لطفا پاسخ دهید
یا علی
سلام
درست متوجه منظورتون نشدم. ولی اگر درست فهمیده باشم می خواهید بدونید که کدوم قسمت ها رو باید نصب کنید. تا جایی که من خاظر هست توابع مربوط به رسم نمودار جزء اصلی متلب هستند و برای استفاده از اونا لازم نیست پکیج خاصی نصب بشه.
سلام
من میخام فرکانس یه سیگنال صحبت رو نشون بدم ولی دقیق به من فرکانس رو نمیده مثلا sin(2*pi*840*t) ولی متلب با دستور fft دقیق ۸۴۰ رو به من نمیده
لطفا راهنمایی کنید.
تشکر
سلام ،خسته نباشید.
من میخوام قسمتی از صفحه ی مختصاتم رو نقطه گذاری کنم. بعد به هر نقطه عددی را متناظر کنم.در اخر در هرنقطه خطی رسم کنم که شیب ان خط برابر با عدد متناظر اون نقطه باشه.لطفا راهنماییم کنید
سلام
با چه دستوری میشه داخل plot به صورت دستی نطقه اضافه کرد؟
سلام
اگر کسی مشکلی داره و برنامه نویسی به زبان متلب می تواند ایمیل بزند
vahidcs87@gmail.com
سلام
ممنون از پستی که گذاشتید
ببخشید چجوری میشه توی محیط متلب نمودار ROC رسم کرد؟
البته به راحتی کاری ک شما گذاشتین
چون هرچی دانلود کردم خیلی سخت و غیر قابل فهم بوده و یا کدی که اصلاً معلوم نیس چی میگه
توی help هم رفتم جوابمو نگرفتم
لطفاً راهنماییم کنید
واقعاً ممنون میشم
سلام من برنامه متلب میخواستم نمودار سه مقدار مثل تعداد لامپ .هزینه ریالی و میزان مصرف انرژی الکتریکی با هم در یک نمودار مقایسه کنم .لطفا راهنمایی کنید
شما می تونید یکبار نمودار تعداد رو در مقابل هزینه رسم کنید و بعد با دستور hold on نمودار رو حفظ کنید و یکبار هم نمودار تعداد رو در مقابل انرژی رسم کنید. در این حالت هر دو نمودار روی یک شکل نمایش داده میشن و چون محور افقیشون مشترکه فکر میکنم همونطور میشه که شما انتظار دارید.
واقعا عالی بود