رسم مقادیر یک ماتریس دو بعدی به صورت سیمی (mesh) و شامل دیواره های کناری با دستور meshz در متلب
دستور meshz در متلب، همانند دستور mesh برای رسم مقادیر یک ماتریس دو بعدی، به صورت سیمی (mesh)، به کار می رود، اما دستور meshz ، علاوه بر رسم مقادیر به صورت سیمی، یک سری دیواره های کناری (صفحه مرجع) را نیز در کنار شکل اصلی رسم می کند. به مثال زیر توجه کنید :
close all
clc
x=-8:0.5:8;
y=-8:0.5:8;
L=length(x);
z=zeros(L,L);
for nn=1:L
for mm=1:L
R=sqrt(x(nn)^2+y(mm)^2);
z(nn,mm)=sin(R)/R;
end
end
meshz(x,y,z)
xlabel('x')
ylabel('y')
zlabel('z')
با دو حقه for ، ماتریس z را بر حسب مقادیر مختلف x و y تعریف کرده ایم. دستور length ، برای تعیین طول یک بردار به کار می رود. دستور zeros نیز برای ایجاد ماتریسی می باشد که مقدار تمامی عناصر آن، برابر صفر باشد. دستورات xlabel و ylabel ، برای اختصاص دادن عنوان به محورهای مختصات به کار رفته اند.
نتیجه :
اگر بخواهیم مقادیر متناظر با رنگ های به کار رفته را بدانیم، باید پس از دستور meshz ، از دستور colorbar استفاده نماییم تا مقادیر متناظر با هر رنگ، در کنار شکل، نمایش داده شود. به مثال زیر توجه کنید :
این بار همان مثال قبلی را با دستور colorbar می نویسیم :
close all
clc
x=-8:0.5:8;
y=-8:0.5:8;
L=length(x);
z=zeros(L,L);
for nn=1:L
for mm=1:L
R=sqrt(x(nn)^2+y(mm)^2);
z(nn,mm)=sin(R)/R;
end
end
meshz(x,y,z)
colorbar
xlabel('x')
ylabel('y')
zlabel('z')
نتیجه :
سلام دوستان عزیز.من هر چی این کد متلب رو اجرا میکنم در خط mesh(xx,yy,w)خطا میده.کسی متونه تصحیح بکنه؟clc
clear
close all
syms x y n m
format short g
P=5000; % Concentrated Load -->N
t=5; % Plate Thickness --> mm
E=207000; % Modulus of Elasticity --> Mpa
nu=0.3; % Possion's Ratio
% Plate dimension --> mm
a=500;
b=500;
D=E*t^3/(12*(1-nu^2));
z=t/2;
w=(4*P/(pi^4*a*b*D))*symsum(symsum((-1)^(m+n)*sin((2*m+1)*pi*x/a)*...
sin((2*n+1)*pi*y/b)/(((2*m+1)/a)^2+((2*n+1)/b)^2)^2,n,0,10),m,0,10);
sigmax=-E*z/(1-nu^2)*(diff(w,x,2)+nu*diff(w,y,2));
sigmay=-E*z/(1-nu^2)*(nu*diff(w,x,2)+diff(w,y,2));
xx=0:10:500;
yy=0:10:500;
[xx,yy]=meshgrid(xx,yy);
w=subs(w,{x,y},{xx,yy});
max(max(w))
figure(1)
mesh(xx,yy,w)
figure(2)
sigma_x=subs(sigmax,{x,y},{xx,yy});
mesh(xx,yy,sigma_x)
figure(3)
sigma_y=subs(sigmay,{x,y},{xx,yy});
mesh(xx,yy,sigma_y)
wmax=max(max(w));
sigma_x_max=max(max(sigma_x));
sigma_y_max=max(max(sigma_y));
disp(wmax)