رسم مقادیر یک ماتریس دو بعدی به صورت یک سطح برجسته و خطوطی در زیر سطح با دستور surfc در متلب
دستور surfc ، مشابه دستور surf است و تنها خطوطی به آن افزوده شده است. شاید قبلا با دستور surf آشنایی داشته باشید و بدانید که دستور surf در متلب، برای ترسیم مقادیر یک ماتریس دو بعدی، به صورت یک سطح برجسته دارای پستی و بلندی، به کار می رود. تفاوت دستور surfc با دستور surf ، این است که دستور surfc ، علاوه بر این که سطح برجسته را بر حسب مقادیر ماتریس رسم می کند، یک سری خطوط رنگی را نیز در زیر این سطح برجسته نمایش می دهد که می تواند به درک بهتر مقادیر ماتریس کمک نماید. هر خط دارای رنگ متفاوتی خواهد بود و نقاط روی هر خط، دارای مقدار برابری می باشند. به مثال زیر توجه کنید :
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
surfc(x,y,z)
xlabel('x')
ylabel('y')
zlabel('z')
ابتدا با دو حلقه for ، ماتریس z را با فرمولی دلخواه، برای بازه های تعریف شده x و y ، ساخته ایم. سپس با دستور surfc(x,y,z) ، مقادیر ماتریس z را برای مقادیر مختلف x و y ، رسم کرده ایم. دستورات xlabel و ylabel و zlabel ، برای تعیین عنوان، برای سه محور مختصات، به کار رفته اند.
نتیجه :
مشاهده می کنید که یک سری خطوط رنگی، در زیر سطح برجسته، رسم شده اند که به خوبی الگوی تغییر مقادیر عناصر ماتریس را نمایش می دهند. باید دقت کنید که نقاط روی هر خط، دارای مقادیر یکسان می باشند و بنابراین شکل آنها، الگوی تغییرات مقادیر عناصر ماتریس می باشد.
چنانچه بخواهیم مقادیر متناظر با هر رنگ، در کنار شکل، نمایش داده شود، باید بعد از دستور surfc ، دستور colorbar را در خط بعدی بنویسیم. همان مثال قبل را دوباره می نویسیم :
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
surfc(x,y,z)
colorbar
xlabel('x')
ylabel('y')
zlabel('z')