Why can't I generate a 3-d surface when using surf? (file)
이전 댓글 표시
My version is 2015b. I use Mac.
x=linspace(-2,2,20);
y=x';
z=y*x;
surf(x,y,z)
And the output has nothing, shownd in picture.

답변 (1개)
Z must be a matrix. In your code, it is only a vector. Follow the eamples on the surf documentation page. You will find meshgrid helpful for this purpose.
x=linspace(-2,2,20);
y=x';
[X,Y] = meshgrid(x,y);
Z = X.*Y;
surf(x,y,Z)
댓글 수: 3
Actally, in the code shown by @WEN SHIN LU, z is a matrix, because it was created as an outer product of the vectors y*x, where y is a column vector, and x a row vector. So the code shown does work.
x=linspace(-2,2,20);
y=x';
z=y*x;
surf(x,y,z)
Cris LaPierre
2022년 1월 22일
Good point. I wonder what the issue is then.
WEN SHIN LU
2022년 1월 23일
카테고리
도움말 센터 및 File Exchange에서 Lighting, Transparency, and Shading에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

