Whiteout/Remove some part of the contour plot

69 views (last 30 days)
I use the built-in MATLAB function "scatterInterpolant" to plot a contour. The plot is shown below.
It's s stress contour and the ellipse is an empty space and there are no nodes inside the ellipse. I want the ellipse to be whiteout. Somehow I managed to set the values inside the ellipse to be zero (because I can't delete them) and I got the following result
I want the ellipse to be whiteout. Any sort of help is highly appreciated. Thanks in advance.
P.S. I use the fill command to fill the ellipse with white color but that's not a proper way to do it.

Accepted Answer

Robert U
Robert U on 7 Nov 2019
Hi Muhammad Usman,
instead of assigning Zero to the nodes you don't want to use, apply "nan"-Values. That will be treated as if there is no value assigned and will be plotted with white color.
x = -100:100;
y = -100:100;
inputData = rand(201);
inputData(abs(x)<=10,abs(y)<=10) = nan;
Kind regards,

More Answers (1)

Muhammad Usman
Muhammad Usman on 7 Nov 2019
Thank you very much sir for your kind response, but there is another problem I am encountering. As you can see in the figure below that it also whiteout some of the nodes outside the ellipse.
What do you think about that?
Muhammad Usman
Muhammad Usman on 13 Apr 2020
Edited: Muhammad Usman on 13 Apr 2020
F = scatteredInterpolant(xgrid, ygrid, plotcomp, 'nearest') ;
% plotcomp contains the values of stress etc at xgrid and ygrid i.e. mesh
[X,Y] = meshgrid(); % creat equally spaced rectangular mesh
Z = F(X,Y);
% then access the nodes of [X,Y] mesh grid which are inside the hole\ellipse
Z( " nodes inside the hole " ) = nan ;

Sign in to comment.




Community Treasure Hunt

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

Start Hunting!