رسم نمودار در متلب با دستور plot
به نام خدا و سلام.
به جلسه بیست و یکم از سری جلسات آموزش متلب خوش آمدید. آموزش متلب از وبسایت متلبپلاس به صورت رایگان ارائه میشود. در این جلسه به رسم نمودار در متلب، به همراه جزئیات آن میپردازیم. مبحث رسم نمودار در متلب، موضوعی است که جزئیات بسیار زیادی دارد. ضخامت نمودار، رسم چند نمودار روی هم، لیبلهای نمودار در متلب و… ازین موارد اند.
با متلب پلاس همراه باشید.
رسم نمودار در متلب با دستور plot
رایجترین دستور متلب برای رسم نمودار، دستور plot است. plot(x,y) دادههای y را برحسب دادههای x رسم میکند. برای رسم نقاط y برحسب نقاط x حتما بایستی دارای طول برابر باشند. جزئیات رنگ نمودار، ضخامت و… نیز در ادامهی این دستور ارائه میشوند. در نوشتار plot(x,y, LineSpec)، جزئیات رسم نمودار هستند. ابتدا با رسم یک نمودار ساده شروع میکنیم.
لطفا نرم افزار متلب را باز کرده و کدهای زیر را شما هم بنویسید.
مثلا نمودار تابع سینوس را در بازه 0 تا 2پی رسم میکنیم. برای این کار یک بردار شامل نقاط x و یک بردار شامل نقاط تابع سینوس ایجاد میکنیم. پس از آن از plot(x,y) برای رسم استفاده میکنیم.
x = 0:0.01:2*pi;
y = sin(x);
plot(x,y)
دستور plot میتواند به عنوان ورودی چند نمودار را دریافت کرده و رسم کند. مثلا برای رسم دو نمودار، از نوشتار plot(x1,y1,x2,y2) استفاده میکنیم. البته برای داشتن نمودار زیباتر، بهتر است که بازه x1 و x2 باهم برابر باشد. مثلا نمودار تابع سینوس و کسینوس را در بازه 0 تا 2پی رسم میکنیم. برای این کار یک بردار نقاط x ایجاد کرده و دو بردار هم برای سینوس و کسینوس. سپس هر دو را رسم میکنیم.
x = 0:0.01:2*pi;
y1 = sin(x);
y2 = cos(x);
plot(x,y1,x,y2)
پس دیدیم که رسم نمودار در متلب بسیار سادهاست. تنها نکتهای که در رسم نمودار باید توجه کنیم این است که x و y بردار باشند. در صورتی که دادههای دستور plot ماتریس باشند، متلب هر ستون از ماتریس را به عنوان یک داده درنظر میگیرد. مثلا اگر ماتریس جادویی 4 در 4 را رسم کنیم، داریم.
y = magic(4);
plot(y)
تغییر نوع خط نمودار در متلب
حال به ویژگی خطوط نمودار رسم شده میپردازیم. گفتیم که ویژگی خطوط بلافاصله پس از دادهها، در دستور plot میآیند. این ویژگیها شامل استایل خطوط، مارکرهای نمودار و رنگ نمودار میباشد. در واقع برای تغییر نوع خط نمودار در متلب، نماد خط موردنظر را درون کوتیشن در دستور plot مینویسیم.
در شکل زیر مشخصات استایل خطوط برای رسم نمودار در متلب ارائه شدهاست.
مثلا برای رسم y برحسب x با استایلی به صورت خط نقطه به صورت plot(x,y,’-.’) مینویسیم.
اضافه کردن مارکر به نمودار
منظور از مارکر، شکل یا نمادهایی هستند که روی نقاط نمودار رسم میشوند. در نرم افزار متلب، مارکرهایی نظیر دایره، مربع، ستاره، لوزی، چند ضلعی و… داریم. در شکل زیر، مشخصات مارکرهای مختلف برای خطوط رسم نمودار ارائه شده.
برای نمایش دادن مارکر روی نمودار در متلب، نماد موردنظر را درون کوتیشن در دستور plot مینویسیم. مثلا دستور plot(x,y,’o’) برای رسم y برحسب x با نقاطی که با دایره مشخص شدهاند میباشد.
تغییر رنگ نمودار در متلب
نرم افزار متلب برای رسم نمودار با رنگهای مختلف، چند رنگ رایج درنظر گرفتهاست. این رنگها شامل زرد، ارغوانی، فیروزهای، قرمز، سبز، سفید و مشکی میباشد. البته که امکان ایجاد رنگ دلخواه نیز با ارائه کد RGB آن رنگ وجود دارد. نماد رنگهای رایج متلب در شکل زیر آمدهاست.
برای رسم نمودار با رنگی که در این لیست باشد، کافیست نماد آن را درون کوتیشن تایپ کنیم. مثلا دستور plot(x,y,’r’) دادههای y برحسب x را با خط قرمز ترسیم میکند.
اگر بخواهیم نمودار را با رنگی ترسیم کنیم که در این لیست نباشد، بایستی کد RGB آن را درون دستور plot و پس از عبارت ‘color’ بنویسیم. البته کدهای RGB در این فرمت بایستی بین صفر تا یک باشند. مثلا plot(x,y,’color’,[0 0.4470 0.7410]) نمودار را با رنگ موردنظر ما رسم میکند.
نکتهی مهمی که برای استایل خطوط باید توجه کنیم، این است که میتوان همهی این ویژگیها را همزمان آورد. مثلا برای رسم نموداری که خط چین، مارکر ستاره و رنگ ارغوانی داشته باشد داریم.
x = 0:0.25:25;
y = sin(x);
plot(x,y,'m--*')
تغییر ضخامت نمودار در متلب
ضخامت نمودار نیز یکی دیگر از ویژگیهای خطوط نمودار در متلب است. برای تعیین یا تغییر ضخامت خطوط نمودار در متلب، مقدار ضخامت موردنظر را پس از عبارت LineWidth در دستور plot مینویسیم. مثلا برای رسم نمودار با ضخامت 2 بایستی از دستور plot(x,y,’linewidth’,2) استفاده کنیم. در مثال زیر نمودار تابع sin(5x)*exp(-x) را در بازه 0 تا 2 رسم میکنیم. ضخامت این نمودار برابر با 1.5 و خط چین با مارکر شش ضلعی باشد.
x = 0:0.05:2;
y = sin(5*x).*exp(-x);
plot(x,y,'--h','linewidth',1.5)
شبکه بندی نمودار در متلب
برای شبکه بندی نمودار در متلب، از دستور grid استفاده میکنیم. برای نمایش شبکه بندی از grid on و برای غیرفعالسازی آن از grid off استفاده میشود. این دستور پس از رسم نمودار و در خطی جداگانه به کار میرود. مثلا نمودار شکل قبل را به صورت شبکهای میکنیم.
x = 0:0.05:2;
y = sin(5*x).*exp(-x);
plot(x,y,'--h','linewidth',1.5)
grid on
رسم آسان نمودار با ezplot یا fplot در متلب
دستور ezplot و یا fplot برای رسم آسان نمودار بکار میروند. با استفاده از این دستورات کافیست فرمول تابع را نوشته و بازه رسم را مشخص کنیم. ezplot(fun,[xmin,xmax]) تابع fun را در بازه xmin تا xmax رسم میکند. البته وارد کردن بازه الزامی نیست. تابع نیز به صورت رشته متنی درون کوتیشن نوشته میشود. اما در نسخههای جدید متلب، متلب پیشنهاد میکند که از fplot بجای ezplot استفاده کنیم. fplot(f,xinterval) نیز تابع f را در بازه xinterval رسم میکند. تابع f در دستور fplot باید به شکل فانکشن هندل (مثلا @x) یا نمادین (symbolic) باشد. برای درک بهتر، به مثالهای زیر دقت کنید.
توجه کنید که @x ابتدای تابع، به معنای این است که این عبارت تابعی از x است.
رسم دو نمودار روی هم با hold on
برای رسم چند نمودار روی هم در یک شکل، از hold on استفاده میکنیم. در این روش، پس از رسم اولین نمودار، دستور hold on را میزنیم. پس از آن، هر نمودار دیگری که رسم شود، روی نمودار اولیه خواهد بود. دستور hold on زمانی کاربرد دارد که فقط نمودار اول در دسترس است. اگر همهی نمودارهایی که میخواهیم رسم کنیم، مشخص باشند، در همان ابتدا با یک دستور plot رسم میشوند. اما فرض کنید درون حلقهی تکرار محاسباتی انجام شده و نمودار آپدیت میشود. در این صورت فقط از hold on میتوان استفاده کرد. مثلا میخواهیم نمودار سینوس x و سینوس 2x را رسم کنیم. 2 راه داریم.
- روش اول: استفاده از دستور plot و رسم یکباره هر دو نمودار
- روش دوم: استفاده از دستور plot برای تابع سینوس، hold on، رسم تابع سینوس 2x
نتیجه در هر دو حالت یکسان است.
x = 0:0.01:2*pi;
y1 = sin(x);
y2 = sin(2*x);
plot(x,y1)
hold on
plot(x,y2)
x = 0:0.01:2*pi;
y1 = sin(x);
y2 = sin(2*x);
plot(x,y1,x,y2)
حال به عنوان یک مثال دیگر از رسم نمودار، فرض کنید میخواهیم تابع f=x را برای توانهای یک تا 5، در بازه صفر تا 1.2 رسم کنیم. ضحامت خطوط نمودار نیز برابر با 1.25 باشد. برای رسم از حلقه for کمک میگیریم. به این صورت که تابع f با هر تکرار از حلقه محاسبه میشود. در این حالت، تابع f پس از محاسبه، با دستور plot رسم میشود. سپس hold on کرده و مابقی نمودارها رسم میشود.
x = 0:0.05:1.2;
for i = 1:5
f = x.^i;
plot(x,f,'linewidth',1.25)
hold on
end
رسم نمودار فوق بدون استفاده از حلقه for و دستور hold on نیز میشود، اما بسیار طولانی خواهد بود. پس کاربرد اصلی دستور hold on دیده میشود.
چنانچه بخواهیم رسم شدن روی نمودار قبلی غیرفعال شود، از دستور hold off استفاده میکنیم.
رسم چند نمودار در یک پنجره با subplot
خب حالا فرض کنید میخواهیم پنجره رسم نمودار را به بخشهای مختلف تقسیم کنیم. در هر پنجره نمودار موردنظر خودمان را رسم کنیم. برای این کار از دستور subplot متلب استفاده میکنیم. subplot(m,n,p) صفحه را به m سطر و n ستون تقسیم میکند و شماره p بخش فعال آن برای رسم است. یعنی ابتدا صفحه را تقسیم بندی میکنیم و سپس با دستور plot نمودار را رسم میکنیم. یک مثال از رسم چند نمودار در یک پنجره ارائه میکنیم.
x = -4:0.01:4;
y_cos = cos(x);
y_poly = 1 - x.^2./2 + x.^4./24;
subplot(2,2,1);
plot(x,y_cos,'linewidth',1.25);
title('Subplot 1: Cosine')
subplot(2,2,2);
plot(x,y_poly,'r','linewidth',1.25);
title('Subplot 2: Polynomial')
subplot(2,2,[3,4]);
plot(x,y_cos,'b',x,y_poly,'r','linewidth',1.25);
title('Subplot 3 and 4: Both')
در مثال فوق، صفحه به 4 بخش تقسیم شدهاست. در بخش اول، نمودار کسینوس رسم شده و در بخش دوم، نمودار یک چندجملهای. در بخش سوم و چهارم به صورت همزمان، یک نمودار رسم شدهاست. این نمودار ترکیب دو نمودار قبل است.
رسم نمودار با دو محور y در متلب
حالت دیگری از رسم دو نمودار روی هم در متلب وجود دارد که در آن محور عمودی y متفاوت است. در واقع در این سبک از نمودارها، دو پارامتر با ابعاد و واحدهای مختلف روی هم رسم میشوند. در این شرایط نیاز به دو محور y داریم. از نسخه متلب 2006a دستور plotyy برای این منظور اضافه شد و تا متلب 2015b وجود داشت. از متلب نسخه 2016a تاکنون، دستور yyaxis ارائه شدهاست. برای رسم نمودار با دو محور y در نسخههای جدید (بعد از 2016) دستور yyaxis توصیه میشود. البته که توانایی دستور yyaxis به مراتب بیشتر از plotyy است. ما به توضیح هر دو دستور میپردازیم.
دستور plotyy در متلب
همانطور که ذکر شد، برای رسم نمودار با دو محور عمودی، در نسخههای قدیمی متلب (از 2006 تا 2015) از این دستور استفاده میشود. نوشتار این دستور در متلب به صورت plotyy(X1,Y1,X2,Y2) است. به مثال زیر دقت کنید.
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
plotyy(x,y1,x,y2)
سایر جزئیات این دستور را میتوانید در راهنمای متلب مشاهده کنید.
دستور yyaxis در متلب
دستور yyaxis که از نسخه متلب 2016 به بعد ارائه شد، توانایی بیشتری نسبت به plotyy دارد. توصیه میشود که برای رسم نموداری با دو محور عمودی از این دستور استفاده کنید. نوشتار دستور yyaxis به صورت yyaxis left/right است. به این صورت که قبل از رسم با plot، محل محور را مشخص میکنیم. چپ یا راست بودن محور y را با yyaxis left یا yyaxis right تعیین میکنیم. پس از تعیین محل محور y، نمودار را با دستور plot و مشابه با آنچه تاکنون گفته شد رسم میکنیم. به مثال زیر دقت کنید.
x = linspace(0,10);
y = sin(2*x);
z = sin(3*x).*exp(0.5*x);
yyaxis left
plot(x,y)
yyaxis right
plot(x,z)
با استفاده از دستور yyaxis میتوانیم چندین نمودار رسم کنیم که روی هم باشند و هرکدام محور عمودی مشخصی داشته باشند. در مثال زیر 4 نمودار روی هم رسم میشود. دوتای آنها با محور y سمت چپ و دوتای دیگر با محور y سمت راست تعریف شدهاست.
x = linspace(0,10);
yl1 = sin(x);
yl2 = sin(x/2);
yyaxis left
plot(x,yl1,'linewidth',1.1)
hold on
plot(x,yl2,'linewidth',1.1)
yr1 = x;
yr2 = x.^2;
yyaxis right
plot(x,yr1,'linewidth',1.1)
plot(x,yr2,'linewidth',1.1)
دقیقا هر آنچه برای دستور plot گفتیم در رسم نمودار با yyaxis نیز برقرار است.
رسم نمودار با مقیاس لگاریتمی در متلب
رسم نمودار با مقیاس لگاریتمی یکی از نمودارهای پرکاربرد در مهندسی است. با استفاده از نمودار مقایس لگاریتمی، اثرات رفتار سیستم بهتر و دقیقتر دیده میشود. یک نمودار در مقیاس لگاریتمی میتواند 3 حالت مختلف داشته باشد. حالت اول لگاریتمی بودن هر دو محور نمودار است. یعنی هم محور x و هم محور y لگاریتمی باشند. حالت دوم و سوم زمانی است که فقط یکی از محورهای x و y لگاریتمی باشند. برای هر یک از حالتهای ذکر شده، در متلب دستوراتی وجود دارد.
نمودار با دو محور در مقیاس لگاریتمی
دستور loglog برای رسم نموداری که مقیاس هر دو محور x و y آن لگاریتمی باشد، استفاده میشود. کافیست x و y موردنظر برای رسم را درون پرانتز مقابل این دستور بنویسیم. به مثال زیر توجه کنید.
x = logspace(0,3);
y = exp(x);
loglog(x,y,'-p')
grid on
توجه داریم که ‘-p’ به معنای خط توپر با مارکر ستاره است. (توضیحات ابتدای مقاله؛ رسم نمودار با plot)
نمودار با محور افقی لگاریتمی
برای رسم نموداری که فقط محور افقی x آن لگاریتمی باشد از دستور semilogx متلب استفاده میکنیم. طرز استفاده از این دستور کاملا مشابه با loglog است.
x = 0:1000;
y = log(x);
semilogx(x,y)
grid on
نمودار با محور عمودی لگاریتمی
برای رسم نموداری که فقط محور عمودی y آن لگاریتمی باشد از دستور semilogy متلب استفاده میکنیم. طرز استفاده از این دستور کاملا مشابه با loglog است.
x = 0:0.1:10;
y = exp(x);
semilogy(x,y)
grid on
نامگذاری محورهای نمودار در متلب
وجود عنوان برای هر محور از نمودار، واجب است. چرا که محور بدون نام، هیچ درک و فهمی به ما منتقل نمیکند. برای نامگذاری محورهای نمودار در متلب، از دستور xlabel و ylabel استفاده میشود. xlabel برای نامگذاری محور x (افقی) و ylabel برای نامگذاری محور y (عمودی). ورودی به این دستورات معمولا یک رشته متنی است. در واقع متنی که قرار است روی محورها نمایش داده شود، به صورت رشته متنی نوشته میشود. برای درک، بهتر به مثال زیر دقت کنید.
x = 0:0.01:4;
y = cos(x.^3);
plot(x,y,'-.','linewidth',1.5)
xlabel('x')
ylabel('cos(x^3)')
همانطور که مشاهده میکنید، برای محور افقی xlabel(‘x’) باعث نمایش x روی آن شده. همچنین ylabel(‘cos(x^3)’) باعث نمایش این تابع روی محور y شدهاست. برای نامگذاری محورهای نمودار در متلب کافیست متن دلخواه خود را در این دستورات قرار دهید. توجه کنید که متن حتما درون کوتیشن قرار بگیرد.
توجه کنید که متن روی محور نمودار میتواند دارای فونت، اندازه و رنگ دلخواه باشد. همچنین میتوان به این متن، حروف یونانی یا علائم ریاضی اضافه کرد. برای مشاهده دستورات و روش انجام این موارد روی تنظیمات متن در رسم نمودار کلیک کنید.
افزودن عنوان به نمودار در متلب
عنوان مهمترین شاخص برای درک مفهوم یک نمودار است. برای افزودن عنوان به نمودار در متلب از دستور title استفاده میکنیم. متن موردنظر برای عنوان، درون این دستور قرار میگیرد. شکل قبل که به محورهای افقی و عمودی آن نام اختصاص دادیم را درنظر بگیرید. میخواهیم عنوان این نمودار را matlab-plot قرار دهیم. برای این کار، به صورت title(‘matlab-plot’) عمل میکنیم. پس کد و نمودار نهایی به صورت زیر خواهد بود.
x = 0:0.01:4;
y = cos(x.^3);
plot(x,y,'-.','linewidth',1.5)
xlabel('x')
ylabel('cos(x^3)')
title('matlab-plot')
در افزودن عنوان به نمودار توجه کنید که متن حتما درون کوتیشن قرار بگیرد.
برای عنوان نمودار نیز تنظیماتی نظیر؛ فونت، رنگ، سایز، افزودن حروف یونانی و علائم ریاضی داریم. تمامی این نکات در لینک بالا👆، تنظیمات متن در رسم نمودار، ارائه شدهاست.
افزودن متن به نمودار در متلب
برای افزودن متن درون نمودار، از دستور text استفاده میشود. ورودیهای این دستور، موقعیت x و y و متن موردنظر میباشد. در استفاده از دستور text، ورودی اول، یعنی موقعیت x و ورودی دوم یعنی موقعیت y بایستی عدد باشند. اما ورودی سوم در دستور text بایستی از جنس رشته متنی باشد و یا درون کوتیشین قرار بگیرد. به مثال زیر دقت کنید. ابتدا نمودار تابع سینوس را رسم میکنیم و سپس متنی به آن اضافه میکنیم.
x = 0:pi/20:2*pi;
y = sin(x);
plot(x,y)
text(pi,0,' sin(\pi)')
برای متن نمودار نیز تنظیماتی نظیر؛ فونت، رنگ، سایز، افزودن حروف یونانی و علائم ریاضی داریم. تمامی این نکات در لینک بالا👆، تنظیمات متن در رسم نمودار، ارائه شدهاست.
افزودن فهرست علائم (legend) به نمودار در متلب
هنگامی که شکل دارای چندین نمودار رسم شده باشد، تشخیص نمودارها دشوار است. در این شرایط برای هر نمودار یک نماد یا ویژگی درنظر گرفته و سپس همه آنها را در یک جدول در کنار شکل ارائه میکنیم. در نمودارهای شکل 11 که تابع f=x برای توانهای 1 تا 5 ایکس رسم شده بود این مشکل دیده میشود. در واقع تشخیص اینکه، کدام خط مربوط به کدام تابع است، دشوار است. در این شرایط از فهرست علائم یا Legend برای نمودار استفاده میشود. برای افزودن فهرست به نمودار در متلب از دستور legend(label1,…,labelN) استفاده میکنیم. در نوشتار این دستور، نام خطوط رسم شده به ترتیب پشت سرهم با یک کاما جدا میشوند. به مثال زیر دقت کنید.
x = 0:0.05:1.2;
for i = 1:5
f = x.^i;
plot(x,f,'linewidth',1.25)
hold on
end
legend('f(x) = x^1','f(x) = x^2','f(x) = x^3',...
'f(x) = x^4','f(x) = x^5')
همانطور که مشاهده میکنید، به هریک از خطوط نام تابع موردنظر الحاق شد. علت استفاده از علامت سه نقطه (…) نیز طولانی شدن خط میباشد. با استفاده از …. میتوان ادامه دستورات را در خط بعد نوشت.
تعیین محدوده محورهای x و y نمودار
برای تعیین بازه محورهای افقی و عمودی نمودار، از دستور xlim و ylim استفاده میکنیم. xlim([a,b]) محور افقی x را به بازه a تا b محدود میکند. به طور مشابه، ylim([a,b]) نیز محور عمودی y را به بازه a تا b محدود میکند. مثلا محدوده محور x نمودار شکل بالا را به بازه 0.2 تا 1.2 محدود میکنیم. برای این کار، کد زیر را در متلب اجرا میکنیم.
xlim([0.2 1.2])
تمرینات این جلسه
در انتهای این جلسه 3 تمرین متلب مربوط به مباحث این جلسه ارائه شده است. لطفا این تمرینها را حل کرده و با پاسخ آن مقایسه کنید. پاسخ تمرینات متلب این جلسه در کانال تلگرام متلب پلاس منتشر میشود. از آیکونهای سمت راست صفحه میتوانید در این کانال عضو شوید.
تمرین اول) نمودار تابع x/exp(x) را در بازه صفر تا 10 با ضخامت 2، رنگ سبز رسم کنید.
تمرین دوم) نمودار تابع سینوس را بصورت عادی و با اختلاف فاز 0.25 و نیم به صورت همزمان روی هم رسم کنید. بازه رسم را از صفر تا 2پی و ضخامت خطوط برای رسم را 1.5 درنظر بگیرید. نمودار اول، به صورت خط توپر، نمودار دوم خط فاصله و نمودار سوم نقطه نقطه باشد. برای این 3 نمودار، فهرست علائم یا legend تعریف کنید.
تمرین سوم) نمودارهای تمرین قبل را درون یک پنجره با 3 بخش رسم کنید. از دستور subplot استفاده کنید. بجای فهرست علائم، روی هر نمودار، عنوان آن را بنویسید.
جمعبندی
خب جلسه بیست یکم از سری جلسات آموزش متلب صفر تا صد به پایان رسید. این جلسه درباره رسم نمودارهای دو بعدی در متلب صحبت کردیم. ترسیم نمودار یکی از موارد مهم در کار با نرم افزار متلب به عنوان یک نرم افزار مهندسی است. سعی شد تا مهمترین مباحث در زمینه رسم نمودار، از جمله رسم چند نمودار روی هم، در یک شکل، با دو محور عمودی، لگاریتمی، نامگذاری محورها و… را پوشش دهیم. حتما مباحث این جلسه را به طور کامل و دقیق مطالعه و بررسی کنید. مثالهای مفهومی و دقیقی که در متن ارائه شده را نیز خودتان بنویسید. در انتها چند تمرین برای یادگیری بیشتر به شما واگذار کردیم که پاسخ آنها در کانال تلگرامی متلب پلاس وجود دارد.
بی صبرانه منتظر نظرات، سوال و ابهامات شما عزیزان هستیم. سعی میکنیم تا هرگونه سوال یا ابهامی که در این باره دارید را پاسخ دهیم. توصیه میشود که حتما تمرینات این جلسه را انجام بدید و اگر سوال و ابهامی دارید در بخش نظرات (پایین همین صفحه) به ما بگید. از فهرست سمت راست هم میتونید به بقیه جلسات دسترسی داشته باشید.
25 Comments
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام. برای رسم دو نمودار که دادههای اونا از فایلهای جداگانه هست چه روشی پیشنهاد میدین؟؟
مثلا x و y رو در کد شماره یک دارم و z و w رو در فایل شماره 2. میخوام اینها روی یک نمودار رسم بشن.
سلام امیر جان
متغیرهای Global در متلب برای همین منظور تعریف شدن. اعتبار متغیرهای Global فراتر از یک کد یا فایل هست. کافیه متغیرهای x و y در فایل اول و متغیرهای z و w در فایل دوم را بصورت global تعریف کنید. مثلا در فایل اول این خط رو اضافه کنید.
global x y
و در فایل دوم این کد
global w z
بعد هر کدوم از فایلها رو اجرا کنید و در نهایت در محیط command window یا یک کد جدید، این دستور رو بزنید
global x y w z
به این ترتیب متغیرهای ذکر شده با مقادیرشون فراخوانی میشن و میتونید رسم شون کنید.
اگر سوال یا ابهام دیگهای بود، بفرمایید.
موفق باشید.
برای رسم یک نمودار و نشان دادن اثر یک پارامتر (مثل h) چکار باید بکنم؟ پارامتر h چند حالت داره که میخوام اثر تغییرش رو در یک نمودار ببینم. ممنون میشم جواب بدین.
سلام و عرض ادب
بهترین کار برای اینکه اثر یک پارامتر رو در نمودار نشون بدیم، این هست که با مقادیر مختلف چند نمودار روی هم رسم کنیم.
برای رسم چند نمودار روی هم باید دستور hold on رو بزنید.
اگر تعداد نمودارها زیاد هستن، میتونید از حلقه for در متلب هم کمک بگیرید. با این کار خیلی راحت همه نمودارها رسم میشه.
سلام ودرود
راهنمایی جهت
برای رسم یک نمودار مختلط که قسمت حقیقی و موهومی اش تابع بر حسب ایکس هستند.
سلام و عرض ادب
رسم نمودار مختلط در متلب تفاوت خاصی با نمودارهای دیگه نداره دوست عزیز.
معمولا بخش حقیقی رو معادل با x و بخش موهومی رو معادل با y درنظر میگیریم. بنابراین نمودار موردنظر با دستور زیر رسم میشه:
plot(x,y)
امیدوارم پاسخ سوالتون رو داده باشم.
سلام برای من تمام خوط نمودار در دستور حلقه به یک رنک نمایش داده میشن. چطور میشه رنگشونو سوا کرد؟
سلام در نسخههای قدیمی متلب اینجوری هست. میتونید بصورت دستی خودتون رنگ نمودار رو تغییر بدید. هم از طریق کدنویسی میشه و هم از طریق تنطیمات رسم. روی تنظیمات در پنجره ای که نمودار رسم شده رو نشون میده کلیک کنید. بعد خطوط نمودار رو در سمت راست مشاهده خواهید کرد. با انتخاب هر خط از نمودار میتونید رنگش رو عوض کنید.
موفق باشید.
https://wikimedia.org/api/rest_v1/media/math/render/svg/a45cef4ca1e2fcd4d367ecff5806d8a2878d3821
سلام
ایا این نمودار قابل رسم هس؟
با سلام و احترام
بله هر نموداری را میتوان رسم کرد، لطفا در گروه پرسش و پاسخ متلب در تلگرام به آی دی matlab_discussion@ مطرح کنید تا دوستان راهنمایی کنند.
سلام
روزتون بخیر ممنون از مطلب مفیدتون
ی سوال داشتم
من یک صفحه دارم که در هر نقطه ولتاژ متغیره
بخوام نمودار ولتاژ رو روی خط مثلا x=0.5 یا مثلا y=3 رسم کنم چیکار باید بکنم؟
سلام و عرض ادب
بسیار خوشحالیم که از کیفیت آموزش متلب راضی بودید.
اینطور که منظورتون رو متوجه شدم، خط y=3 میشه یک خط افقی که از مبدا مختصات 3 واحد بالاتره، بنابراین میتونید به کل نموداری که دارید 3 واحد اضافه کنید. و یا به همین ترتیب برای رسم روی خط x=0.5 . بازهم اگر من منظورتون رو بدرستی متوجه نشدم، واضحتر بیان کنید تا بهتر بتونیم راهنمایی کنیم.
موفق باشید.🙏
سلام
نه منظورم این بود ولتاژ رو میخواهم نسبت به زمان رسم کنم با دستور semilogx(t,v);
اما فقط در یک نقطه از صفحه
چون در هر نقطه ولتاژ به زمان متغییره مثلا روی نقطه x=0.5 , y=3
نه منظورم نسبت به زمان ولتاژ رو میخوام تو یک نقطه خاص از صفحه رسم کنم
ولتاژ به زمان برای تمام نقاط صفحه متغییره هم نسبت به زمان هم x هم y
سلام و ارادت🌹
میخواهم نموداری برای احتمالات مختلف رسم کنم که البته در ترسیم مقدار احتمال مشخص باشه
در لبتاب رنگ بندی این کارو میکنه ولی برای چاپ مقاله که سیاه و سفید است چه راهکاری دارید؟
ممنون میشم راهنمایی کنید🙏🌸
سلام و عرض ادب
برای حل این مشکل میتونید از رنگ سیاه استفاده کنید و با استفاده از موارد زیر بین نمودارها تفاوت ایجاد کنید. دقت کنید که کد هر ویژگی توی پرانتز نوشته شده.
استایل خطوط (line style)، ضخامت خطوط (Linewidth)، افزودن مارکر (Marker) و یا تغییر اندازه مارکرها (Marker size)
سلام
روزتون بخیر ممنون از مطلب مفیدتون
ی سوال داشتم
من یک صفحه دارم که در هر نقطه ولتاژ نسبت به زمان متغیره
بخوام نمودار ولتاژ نسبت به زمان رو فقط برای یک نقطه خاص مثلا x=0.5 y=3 رسم کنم چیکار باید بکنم؟
سلام و عرض ادب
محمد عزیز منظورتون رو بدرستی متوجه نمیشم، لطفا در گروه تلگرامی پرسش و پاسخ متلب عضو بشید و اونجا مطرح کنید.
لینک عضویت در گروه👇
سلام و عرض ادب
محمد عزیز منظورتون رو بدرستی متوجه نمیشم، لطفا در گروه تلگرامی پرسش و پاسخ متلب عضو بشید و اونجا مطرح کنید.
لینک عضویت در گروه👇
https://t.me/matlab_discussion
سلام من یه حد دارم که باید خروجی اونو روی محور نشان بدم limit (1 + sin(x))^cot(x)
من باید داخل اسکریپت چی تایپ کنم ؟
سلام و عرض ادب
نمودار تابع رو به ازای مقادیر نزدیک به مقدار حد رسم کنید.
سلام وقت بخیر برای اینکه از اپلیکیشن متلب موبایل استفاده کنم چه کاری باید انجام بدم؟چه طوری میشه به این اپ DSP System Toolbox اضافه کرد؟یه برنامه دیگه هم هست به اسم دانشجوگرام که شبیه ساز متلب داره ولی اون هم اجرا نمیکنه کدرو چه طور میشه باهاش کارکرد؟
سلام و عرض ادب
اولا در نسخه موبایل متلب دسترسیها مثل دسکتاپ نیست که بشه هر تولباکسی رو بهش اضافه کرد.
ثانیا برای نصب روی موبایل نیاز به لایسنس موبایل دارید که ممکنه پیدا کردنش راحت نباشه.
سلام خسته نباشید من می خواستم یه نمودار ویسکوزیته بر حسب دمای چند ماده رو رسم کنم اما هر بار به من parse error میده ممکنه راهنمایی کنید
با درود فراوان
لطفا عکس ارور را در گروه پرسش و پاسخ متلب در تلگرام به آی دی matlab_discussion بفرستید.