Deformed surf using griddata ?
이전 댓글 표시
I have a set of data as attached. but when I surf them after using griddata. the result is deformed surf AS SHOWN IN THE PICTURE with red squares. Z values on the surf were supposed to follow the edges of the shape. I think its because there is something wrong with (z_surf) matrix in my code. But I don't know how to solve it.
Hope you can help me to solve this problem.
Thank you.


x_limit=xyz_board_ordered_dvd(:,1);
y_limit=xyz_board_ordered_dvd(:,2);
z_limit=xyz_board_ordered_dvd(:,3);
dx=1;
dy=1;
x_edge=floor(min(x_limit)):dx:ceil(max(x_limit));
y_edge=floor(min(y_limit)):dy:ceil(max(y_limit));
[x_surf,y_surf]=meshgrid(x_edge,y_edge);
z_surf=griddata(x_limit,y_limit,z_limit,x_surf,y_surf);
surf(x_surf,y_surf,z_surf)
xlabel('X')
ylabel('Y')
xlim([0 120])
ylim([0 120])
댓글 수: 1
Walter Roberson
2017년 8월 24일
I notice that only 554 of the 604 points are unique.
채택된 답변
추가 답변 (1개)
Walter Roberson
2017년 8월 24일
0 개 추천
You can get closer to what you want if you add the 'nearest' option to the griddata() call.
You will get an odd artifact, which I figure is due to peculiarities about which is the "closest" point in 3-space.
There is no reason for the surface to follow the edge using griddata(). Gridding takes place in 3-space, so when you get sufficiently far from the edges, the closest points might be from a different z than you were picturing.
If you have a surface that you know should be a ribbon, then there are ways to decompose that.
카테고리
도움말 센터 및 File Exchange에서 Surfaces and Volumes에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


