필터 지우기
필터 지우기

surf(Z) Z= 11x9 double produces a 10x8 surface

조회 수: 2 (최근 30일)
Ali Afshar Dodson
Ali Afshar Dodson 2015년 11월 16일
댓글: Stephen23 2015년 11월 16일
I have a matrix of data 11x9 I wish to show as a surface. However
surf(Z)
surf(m,n,Z)
produce surfaces 10x8. Can anyone suggest how I can get all the results onto a surface? Thanks
  댓글 수: 1
Stephen23
Stephen23 2015년 11월 16일
This is the normal behavior of surf, as is explained in the answers below. If you want to plot each value as a distinct surface you could try using bar3.

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

채택된 답변

Mike Garrity
Mike Garrity 2015년 11월 16일
When you create a surface, each value in your matrix becomes one of the vertices of the surface. Since the faces of the surface each connect a 2x2 group of vertices, the number of faces is one fewer in each of the two directions.
I'm just guessing, but it might be that you want to use all 11x9 values as colors. To do this, try setting FaceColor to interp.
surf(m,n,Z,'FaceColor','interp')
When you do this, the position AND COLOR of each version will come from one of the values in your matrix, and they will be interpolated across the faces.

추가 답변 (1개)

Thorsten
Thorsten 2015년 11월 16일
편집: Thorsten 2015년 11월 16일
The full matrix is shown by surf. The numbers define the outer points of each patch: consider
surf([1 2; 3 4])
that draws a single patch based on four points.

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by