هاشور زدن سطح زیر نمودار
آموزش متلب رسم شکل در متلب شکل دوبعدی در متلب

هاشور زدن (رنگی کردن) بخشی از منحنی های رسم شده با استفاده از دستور fill در متلب :

هاشور زدن (رنگی کردن) بخشی از منحنی های رسم شده با استفاده از دستور fill در متلب :

با استفاده از دستور fill در متلب، می توانیم بخش های دلخواهی از منحنی های رسم شده را هاشور بزنیم (رنگی کنیم). دستور fill ، در واقع برای کشیدن یک چندضلعی که داخل آن با رنگ خاصی پر شده است، به کار می رود، اما ما از این قابلیت آن استفاده کرده و عمل هاشور زدن (رنگی کردن) بخش های دلخواه از شکل و منحنی ها را انجام خواهیم داد. ابتدا نحوه کشیدن چندضلعی با دستور fill را شرح می دهیم و سپس مثال های پیچیده تری را شرح می دهیم که در آنها بخش هایی از منحنی های رسم شده را به صورت هاشورزده (رنگی) در خواهیم آورد.

رسم یک چندضلعی با رنگ دلخواه با استفاده از دستور fill در متلب :

برای رسم یک چندضلعی با دستور fill در متلب، باید مختصات نقاط آن چند ضلعی را بدانیم و سپس مختصات آنها را در دو بردار X و Y بنویسیم که بردار X شامل مختصات x نقاط چندضلعی و بردار Y شامل مختصات y نقاط چند ضلعی می باشد. سپس دستور fill ، با دریافت دو بردار X و Y ، چندضلعی را رسم خواهد کرد. به مثال زیر توجه کنید :

مثال :

clear all
close all
clc

X=[1 2 4 3];
Y=[5 2 3 7];
fill(X,Y,‘b’);
axis([0 5 1 8])

سه خط اول، دستورات متداول برای عدم تداخل با برنامه های پیشین اجرا شده در متلب می باشند. دقت شود که با عبارت ‘b’ در پرانتز دستور fill ، مشخص کرده ایم که داخل چند ضلعی، با رنگ آبی پر شود. با دستور axis نیز حدود محورهای مختصات را مشخص کرده ایم.

نتیجه :

(matlab) آموزش متلب

هاشور زدن (رنگی کردن) بخشی از یک منحنی رسم شده با دستور fill در متلب :

گاهی پیش می آید که توسط نرم افزار متلب، یک منحنی را رسم می کنیم و پس از مشاهده آن نیاز داریم که بخشی از آن را به صورت هاشورزده (رنگی) درآوریم. به عنوان مثال فرض کنید با کدهای زیر یک منحنی را رسم کنیم :

clear all
close all
clc

x=0:0.1:2*pi;
y=sin(x);
plot(x,y)
axis([0 x(end)2 2])

منظور از x(end) ، آخرین عنصر بردار x می باشد.

نتیجه :

(matlab) آموزش متلب

حال فرض کنید که بخواهیم بالای این منحنی را با رنگ زرد هاشور بزنیم. برای این منظور، اینگونه از دستور fill استفاده خواهیم کرد :

 

clear all
close all
clc

x=0:0.1:2*pi;
y=sin(x);
plot(x,y)

X=[0,x,2*pi];
Y=[2,y,2];
fill(X,Y,‘y’);
axis([0 x(end)2 2])

دقت شود که در تعریف دو بردار X و Y که به دستور fill داده می شوند، از همان دو بردار x و y استفاده کرده ایم، اما علاوه بر این، به این دو بردار، دو نقطه نیز اضافه کرده ایم. این دو نقطه را با توجه به همان شکل قبل مشخص کرده ایم، یک نقطه، همان نقطه گوشه بالا سمت چپ شکل با مختصات [x,y]=[0,2] می باشد که باید مختصات آن حتما در ابتدای بردارهای X و Y قرار داده شود و نقطه دوم، همان نقطه گوشه بالا سمت راست شکل با مختصات [x,y]=[2*pi,2] می باشد که باید مختصات آن، حتما در انتهای بردارهای X و Y قرار داده شود. خوب بنابراین با نقاط تعریف شده در بردارهای X و Y ، همان فضای بسته ای که می خواستیم رنگی شود را انتخاب کرده ایم.

نتیجه :

(matlab) آموزش متلب

هاشور زدن (رنگی کردن) بخش های مشترک یا غیر مشترک (هر بخش دلخواه) حاصل از رسم دو منحنی :

در برخی موارد نیاز است که بخش های مشترک یا غیر مشترک حاصل از رسم دو منحنی را هاشور بزنیم (رنگی کنیم). پیچیدگی این مورد، خیلی بیشتر از حالت یک منحنی نیست و تنها باید حواسمان باشد که بخشی را که می خواهیم هاشور بزنیم به طور درست با دو بردار X و Y تعریف کنیم. به مثال زیر توجه کنید :

مثال :

ابتدا دو منحنی را به صورت عادی رسم می کنیم :

clear all
close all
clc

hold on
x=0:0.1:2*pi;
y_1=sin(x);
plot(x,y_1,‘+r’)

y_2=0.5*x-1;
plot(x,y_2,‘^g’)
axis([0 x(end)2 3])

نتیجه :

(matlab) آموزش متلب

اکنون قصد داریم بین هر دو منحنی، برای هر x ، مقدار ماکزیمم y را مشخص کرده و نقاط ماکزیمم را با رنگ آبی نمایش دهیم و همچنین بالای این مقادیر ماکزیمم (بالای نمودار) را با رنگ زرد پر کنیم. برای این منظور کدهای زیر را می نویسیم :

 

clear all
close all
clc

hold on
x=0:0.1:2*pi;
y_1=sin(x);
plot(x,y_1,‘+r’)

y_2=0.5*x-1;
plot(x,y_2,‘^g’)
axis([0 x(end)2 3])

L=length(x);
maximum=zeros(1,L);
for nn=1:L
maximum(nn)=max(y_1(nn),y_2(nn));
end

X=[0,x,2*pi];
Y=[3,maximum,3];
fill(X,Y,‘y’)

plot(x(1:28),y_1(1:28),‘+b’);
plot(x(29:end),y_2(29:end),‘^b’);

ابتدا دو نمودار را به صورت معمولی رسم کرده ایم. دستور length ، تعداد عناصر بردار را مشخص می کند. سپس برداری به نام maximum تعریف کردیم که در آن برای هر x ، مقدار ماکزیمم y از بین دو مقدار مربوط به دو منحنی، مشخص شده است. دستور max ، مقدار ماکزیمم را تعیین می کند. سپس با دستور fill ، بخش بالای مقادیر ماکزیمم (بالای نمودار) را با رنگ زرد پر کرده ایم. در دو خط آخر نیز، با دو دستور plot ، نقاط ماکزیمم را دوباره، اما این بار با رنگ آبی، رسم کرده ایم. دو عدد 28 و 29 نوشته شده در این دو خط، همان شماره نقاط نزدیک تلاقی دو نمودار است که آنها را از دیدن نمودارهای رسم شده، متوجه شده ایم.

نتیجه :

(matlab) آموزش متلب

تعیین رنگ پس زمینه شکل ها با دستور whitebg در متلب :

همان طور که می دانید، نرم افزار متلب، به طور خودکار، رنگ پس زمینه شکل ها را سفید در نظر می گیرد، اما ممکن است در مواردی بخواهیم، رنگ پس زمینه شکل، رنگ دیگری باشد. در این موارد، می توانیم از دستور whitebg در متلب استفاده کنیم. باید دقت کنید که اگر رنگ پس زمینه شکل ها را تغییر دادید و دوباره خواستید به حالت اولیه، یعنی رنگ سفید، برگردید باید مجددا از دستور whitebg استفاده کرده و این بار رنگ سفید را انتخاب کنید. به مثال زیر توجه کنید :

مثال :

ابتدا شکلی را به صورت معمولی و با پس زمینه سفید، رسم می کنیم :

clear all
close all
clc

t=0:0.1:2*pi;
x=sin(t);
plot(t,x,‘^’)

نتیجه :

(matlab) آموزش متلب

حال این بار با دستور whitebg ، رنگ پس زمینه را به سبز، تغییر می دهیم :

clear all
close all
clc

t=0:0.1:2*pi;
x=sin(t);
plot(t,x,‘^’)
whitebg(‘green’)

مشاهده می کنید که باید رنگ مورد نظرمان را درون پرانتز دستور whitebg بنویسیم.

نتیجه :

(matlab) آموزش متلب

برای اینکه شکل هایی که از این به بعد رسم می کنیم، با پس زمینه سفید اجرا شوند، باید دستور زیر را بنویسیم :

whitebg(‘white’)

رسم تعدادی دایره، با رنگ ها و اندازه های مختلف، با دستور scatter در متلب :

با استفاده از دستور scatter در متلب، می توانیم تعدادی دایره را با رنگ ها و اندازه های مختلف رسم کنیم. دستور scatter به صورت کلی زیر به کار می رود :

scatter(X,Y,S,C)

که در آن، بردار X حاوی مختصات x تمامی دایره ها (نقطه ها)، بردار Y حاوی مختصات y تمامی دایره ها (نقطه ها)، بردار S حاوی مقادیر متناظر برای تعیین اندازه دایره ها و بردار C حاوی مقادیر متناظر برای رنگ دایره ها می باشد.

به مثال زیر توجه کنید :

مثال :

clear all
close all
clc

X=1:3:90;
Y=X;
S=X;
C=X;
scatter(X,Y,S,C)

سه خط اول کدها برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب می باشد.

نتیجه :

(matlab) آموزش متلب

مثال :

clear all
close all
clc

load seamount
scatter(x,y,5,z)

نتیجه :

(matlab) آموزش متلب

مثال :

clear all
close all
clc

load seamount
scatter(x,y,sqrt(-z/2),[.5 0 0],‘filled’)
zoom(2)

نتیجه :

(matlab) آموزش متلب

رسم تعدادی دایره در فضای سه بعدی، با رنگ ها و اندازه های مختلف، با دستور scatter3 در متلب :

با استفاده از دستور scatter3 در متلب، می توانیم تعدادی دایره را با رنگ ها و اندازه های مختلف، در فضای سه بعدی، رسم کنیم. دستور scatter3 به صورت کلی زیر به کار می رود :

scatter3(X,Y,Z,S,C)

که در آن، بردار X حاوی مختصات x تمامی دایره ها، بردار Y حاوی مختصات y تمامی دایره ها، بردار Z حاوی مختصات z تمامی دایره ها، بردار S حاوی مقادیر متناظر برای تعیین اندازه دایره ها و بردار C حاوی مقادیر متناظر برای رنگ دایره ها می باشد.

به مثال زیر توجه کنید :

مثال :

مثال خود نرم افزار متلب :

clear all
close all
clc

[x,y,z] = sphere(16);
X = [x(:)*.5 x(:)*.75 x(:)];
Y = [y(:)*.5 y(:)*.75 y(:)];
Z = [z(:)*.5 z(:)*.75 z(:)];
S = repmat([1 .75 .5]*10,numel(x),1);
C = repmat([1 2 3],numel(x),1);
scatter3(X(:),Y(:),Z(:),S(:),C(:),‘filled’)
view(40,35)

xlabel(‘x’)
ylabel(‘y’)
zlabel(‘z’)

نتیجه :

رسم تعدادی دایره در فضای سه بعدی، با رنگ ها و اندازه های مختلف، با دستور scatter3 در متلب

رسم مقادیر یک ماتریس دو بعدی به صورت شبه رنگی (شطرنجی) با دستور pcolor در متلب :

دستور pcolor در متلب، برای ترسیم مقادیر یک ماتریس، به صورت شبه رنگی (شطرنجی)، به کار می رود، به این صورت که عناصر ماتریس، به صورت شطرنجی، نمایش داده می شوند و متناسب با مقدار هر عنصر، درون خانه متناظر با آن عنصر، با یک رنگ پر می شود. به مثال زیر توجه کنید :

مثال :

clear all
close all
clc

x=-10:0.5:10;
y=-10:0.5:10;
L=length(x);
z=zeros(L,L);
for nn=1:L
for mm=1:L
z(nn,mm)= –sqrt(x(nn)^2+y(mm)^2);
end
end

pcolor(x,y,z)
xlabel(‘x’)
ylabel(‘y’)

دستور length ، برای تعیین طول یک بردار به کار می رود. از دو حلقه for ، برای ساخت ماتریس z بر حسب x و y های مختلف، استفاده کرده ایم.

نتیجه :

(matlab) آموزش متلب

نکته :

چنانچه بخواهیم مقادیر عدددی متناظر با هر رنگ را بدانیم، می توانیم با دستور colorbar ، این مقادیر را در کنار شکل نمایش بدهیم. به مثال زیر توجه کنید :

مثال :

همان مثال قبل را این بار با دستور colorbar می نویسیم :

clear all
close all
clc

x=-10:0.5:10;
y=-10:0.5:10;
L=length(x);
z=zeros(L,L);
for nn=1:L
for mm=1:L
z(nn,mm)= –sqrt(x(nn)^2+y(mm)^2);
end
end

pcolor(x,y,z)
colorbar
xlabel(‘x’)
ylabel(‘y’)

نتیجه :

(matlab) آموزش متلب
سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

دیدگاهتان را بنویسید

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