Azzera filtri
Azzera filtri

Plot 2D predicate function

6 visualizzazioni (ultimi 30 giorni)
Gergely Kiss
Gergely Kiss il 23 Apr 2021
Risposto: Jaynik il 4 Apr 2024
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.

Risposte (1)

Jaynik il 4 Apr 2024
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!



Community Treasure Hunt

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

Start Hunting!

Translated by