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

1 view (last 30 days)
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 Comments
madhan ravi
madhan ravi on 12 Apr 2019
you never seem to use z & y after meshgrid() call , re-examine why you used it in the first place
Walter Roberson
Walter Roberson on 12 Apr 2019
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()

Sign in to comment.

Accepted Answer

KSSV
KSSV on 12 Apr 2019
Edited: KSSV on 12 Apr 2019
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]);

More Answers (0)

Categories

Find more on Graphics Performance in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!