plot a surface inside a circle of radius R

11 visualizaciones (últimos 30 días)
Elizabeth Diaz Bueno
Elizabeth Diaz Bueno el 25 de Feb. de 2022
Comentada: Voss el 26 de Feb. de 2022
I have a matrix T, which represents cornea local thickness. I wan to clean up the borders and plot T inside a circle or radius r ( turn image on the left side onto image on the right side).

Respuesta aceptada

Voss
Voss el 25 de Feb. de 2022
Editada: Voss el 25 de Feb. de 2022
You can set the elements of T beyond a certain distance from the origin (i.e., the center of the circle) to NaN so they don't show up.
% first, make a rough approximation to your initial
% image because I do not have your data:
r = 5.7;
x = -r:0.01:r;
y = -r:0.01:r;
[X,Y] = meshgrid(x,y);
T = (X.^2+Y.^2)/r^2;
surf(X,Y,T,'EdgeColor','none');
view([0 90]);
set(gca(),'CLim',[0.3 1]);
colormap('jet');
colorbar();
xlabel('X');
ylabel('X');
title('Thickness');
% NaNs don't show up in the surface plot, so to make the region outside the
% circle disappear:
T(X.^2+Y.^2 > r^2) = NaN;
% and plot it the same way (but make the axes invisible)
figure();
surf(X,Y,T,'EdgeColor','none');
view([0 90]);
set(gca(),'CLim',[0.3 1],'Visible','off'); % turn off the axes
colormap('jet');
colorbar();
  2 comentarios
Elizabeth Diaz Bueno
Elizabeth Diaz Bueno el 26 de Feb. de 2022
This is what I need, Thanks!
My figure isn't as smooth as yours but it'll do. ( I've attached the files, I realized I forgot to do it before)
Voss
Voss el 26 de Feb. de 2022
You're welcome!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by