use surf() to plot a circle from a rectangle matrix
古いコメントを表示
Hey everybody,
I have a greyscale picture and i want to surface plot just a circle from it.
I tried to cut out the circle and plot it with surf(). It didnt work.
After that, i tried to assign NaN to the values i dont want to plot. But they are plotted as zeros. I didnt find a way to ignore those values.
i attached the picture file i am using.
What am i doing wrong?
Im a real Matlab beginner by the way.

回答 (2 件)
Cris LaPierre
2019 年 1 月 4 日
[x, y] = ndgrid(linspace(-1,1,500));
z = cos(2*pi*(x+y)*2);
z(x.^2+y.^2>1) = NaN; %// remove values outside unit circle
surf(x,y,z,'edgecolor','none')
colorbar
view(2)
axis equal
view(2) creates a top down view.

view(3) creates a 3d view

Image Analyst
2019 年 1 月 4 日
0 投票
Maybe you'd like MeshCanopy: MathWorkshttps://www.mathworks.com/matlabcentral/fileexchange/29485-meshcanopy

カテゴリ
ヘルプ センター および File Exchange で Surface and Mesh Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!