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