آموزش متلب (MATLAB)
۵۴۳ آموزش
نمایش دسته بندی ها (۵۴۳ آموزش)

رسم مقادیر یک ماتریس دو بعدی به صورت یک سطح برجسته با دستور surf در متلب

چنانچه یک ماتریس دو بعدی داشته باشیم و بخواهیم توسط یک شکل سه بعدی، مقادیر عناصر آن را ببینیم، می توانیم از دستور surf در متلب استفاده کنیم. دستور surf ، مقادیر ماتریس را به صورت یک سطح برجسته و دارای پستی و بلندی، نمایش می دهد. به مثال زیر توجه کنید :

مثال

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
 
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 در متلب
نکته

چنانچه بخواهیم مقادیر متناظر با هر رنگ، در کنار شکل، نمایش داده شود، باید بعد از دستور surf ، دستور 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
 
surf(x,y,z)
colorbar
xlabel('x')
ylabel('y')
zlabel('z')

نتیجه :

رسم مقادیر یک ماتریس دو بعدی به صورت یک سطح برجسته با دستور surf در متلب

مشاهده می کنید که مقادیر متناظر با رنگ ها، در کنار شکل، نمایش داده شده اند.

نویسنده علیرضا گلمکانی
شماره کلید 114
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 7 7 0
فاطمه
۱۳۹۶/۰۲/۲۵
۲۰:۳۸

مرسیییییییییییییییییییییییییییییییییییییییییی

متلب کار
۱۳۹۶/۰۴/۰۸
۰۰:۳۲

واقعا سایتتون عالیه ، ممنون از اطلاعات کافی و جامعتون.
راستی مرسی از اینکه برای نظر دادن مجبور به ثبت نام نیستیم. Tongue

مسعود
۱۳۹۶/۰۴/۲۴
۱۵:۵۳

اگر ماتریسمون مربعی نبود چی؟ اون موقع چطور باید رسم کرد؟

admin
۱۳۹۶/۰۴/۲۵
۱۱:۳۹

سلام.
به عنوان مثال، کد متلب (MATLAB) زیر را اجرا کنید :

کد پی‌اچ‌پی:
clear all
close all
clc
 
x
=-10:0.5:0;
y=-10:0.5:10;
L1=length(x);
L2=length(y);
z=zeros(L1,L2);
for 
nn=1:L1
    for mm
=1:L2
        z
(nn,mm)=-sqrt(x(nn)^2+y(mm)^2);
 
   end
end
 
surf
(x,y,z')
xlabel('
x')
ylabel('
y')
zlabel('
z') 

دو تغییر در کد قبلی ایجاد کرده ایم :
1- اندازه بردارها را در دو متغیر L1 و L2 قرار داده ایم و این دو متغیر در حلقه ها نوشته شده اند (به عنوان تعداد گام حلقه ها).
2- یک علامت ' بعد از z در دستور surf نوشته شده است (باعث جابجایی ستون ها و ردیف های z می شود) :

کد پی‌اچ‌پی:
surf(x,y,z') 

منبع این نکته

Flower

nn
۱۳۹۷/۰۷/۲۹
۲۱:۲۳

سلام و تشکر از سایت خوبتون. یه سوال در مورد مبحث بالا دارم
اگر ابعاد ماتریسها یکی نباشد باید چیکار کنیم؟

احسان
۱۳۹۸/۰۱/۰۸
۱۷:۰۰

خیلی ممنون

پریناز
۱۳۹۹/۰۹/۱۸
۱۳:۲۳

سلام وقتتون بخیر ۳تا طرح گرافیکی با حجم ۳ بعدی و ۳تا وجهشو از روبه رو متمایل به راست و چپ و از بالا میشه برام بفرستید ممنون.

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)