3D surface plotting. Error (z must be a matrix)

조회 수: 2 (최근 30일)
Ubaid Ullah
Ubaid Ullah 2019년 4월 12일
편집: KSSV 2019년 4월 12일
x_length=50;
for y_length=0:200;
z_length=y_length;
%[z,y]=meshgrid(z_length,y_length);
%i=0:200;
Hyp1=sqrt((x_length.^2)+(y_length.^2));
Hyp2=sqrt((Hyp1.^2)+(z_length.^2));
ctheta_i=y_length/Hyp2;
Lang_walldb=20*(1-ctheta_i).^2;
surf(Lang_walldb)
grid on
xlabel('y length');
ylabel('z length ');
zlabel('angular loss')
hold on
set(gca,'View',[-29,-22]);
end
  댓글 수: 2
madhan ravi
madhan ravi 2019년 4월 12일
you never seem to use z & y after meshgrid() call , re-examine why you used it in the first place
Walter Roberson
Walter Roberson 2019년 4월 12일
Nothing in your calculation is a vector, let alone a matrix. Your Lang_walldb is always going to be a scalar at the point you do the surf()

댓글을 달려면 로그인하십시오.

채택된 답변

KSSV
KSSV 2019년 4월 12일
편집: KSSV 2019년 4월 12일
x_length=0:50;
y_length=0:200 ;
[x_length,y_length] = meshgrid(x_length,y_length);
Hyp1=sqrt((x_length.^2)+(y_length.^2));
Hyp2=sqrt((Hyp1.^2)+(y_length.^2));
ctheta_i=y_length./Hyp2; % edited as suggested my Madhan Ravi
Lang_walldb=20*(1-ctheta_i).^2;
surf(Lang_walldb)
shading interp
grid on
xlabel('y length');
ylabel('z length ');
zlabel('angular loss')
hold on
set(gca,'View',[-29,-22]);
  댓글 수: 2
madhan ravi
madhan ravi 2019년 4월 12일
ctheta_i=y_length./Hyp2; % missed a dot in front of /
KSSV
KSSV 2019년 4월 12일
Yes...edited..

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Annotations에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by