Plot 2D predicate function

I have a preducate function f(x, y) which returns a logical value (ie. it returns true iff (x, y) is in the set of points described by f).
I would like to plot it. I want a 2D plot where the color of the points for which f returns true is colored.
I've tried to use fcontour, but it often creates incorrect plots and I suspect it assumes some kind of smoothness of my predicate.

Answers (1)

Hi Gergely,
Instead of using 'fcontour', you can use the 'imagesc' function which takes the input as "x", "y" and instead of "C", you can give the output of your predicate function "f".
You can also use any other plot by obtaining the "x" and "y" indices where "f" is true and plotting them. For example, following is sample code that uses a 'scatter plot':
Z = f(X, Y);
% Using imagesc to create a 2D plot:
% imagesc(x, y, Z);
[trueY, trueX] = find(Z);
scatterX = x(trueX);
scatterY = y(trueY);
% Scatter plot for points where x and y are true:
scatter(scatterX, scatterY, 1, 'filled');
Please refer to the following documentation to know more about these functions:
Hope this helps!

Categories

Find more on Labels and Styling in Help Center and File Exchange

Products

Tags

Asked:

on 23 Apr 2021

Answered:

on 4 Apr 2024

Community Treasure Hunt

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

Start Hunting!