Create 3D Surface

조회 수: 1 (최근 30일)
Kostas Chatz
Kostas Chatz 2012년 2월 13일
편집: Cedric 2013년 10월 10일
Hello,
I'm trying to create a 3D surface for simulation purposes. My code is:
function ZZ = plot_surface_test(Xl, width)
grid_points=6;
for i=1:grid_points*11
xx(i)=i/(grid_points*10);
for j=1:grid_points*11;
C(i,j)=0;
yy(j)=j/(grid_points*10);
ii=min(find((xx(i)-Xl(1,:)).^2+(yy(j)-Xl(2,:)).^2==min((xx(i)-Xl(1,:)).^2+(yy(j)-Xl(2,:)).^2)));
ZZ(i,j)=Xl(3,ii)*exp(-width(ii)*((xx(i)-Xl(1,ii)).^2+(yy(j)-Xl(2,ii)).^2));
end
end
surf(ZZ)
I would like some suggestions please according to what matrixes Xl and width should be so that this code generate a real-like surface.
Thank you

답변 (2개)

Walter Roberson
Walter Roberson 2012년 2월 13일
Also, min(find(X)) can be replaced by find(X,1)

Kevin Holst
Kevin Holst 2012년 2월 13일
It appears that Xl should be a 3x66 numeric matrix and width should be a 1x66. Xl(1,:) looks like it contains an x coordinate for a measurement, Xl(2,:) looks to contain the y coordinate, and Xl(3,:) contains the measurement. I'm not sure about width. It also lookes like you can get rid of C(i,j)=0; unless that's used somewhere later for something.
What else do you need to know about this?
  댓글 수: 2
Kostas Chatz
Kostas Chatz 2012년 2월 13일
I've tried numeric matrixes and the result is not a a real-like surface
Specificly i've put for Xl:
for i=1:grid_points;
for j=1:grid_points;
Xl(1,(i-1)*grid_points+j)=i/grid_points;
Xl(2,(i-1)*grid_points+j)=j/grid_points;
Xl(3,(i-1)*grid_points+j)=maximum_height_surface*rand;
end
end
but i don't have any idea for width.
I've tried an integer instead of vector width and the only thing i get is some random peaks that are not connected to each other.
Kevin Holst
Kevin Holst 2012년 2월 14일
I just put in width = ones(1,66) and it worked for me. It produces a surface that has small curved square plateaus in a 6x6 square. Unfortunately, I'm not in a place where I can upload at screenshot. What are you expecting the surface to look like?

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

카테고리

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