How can I plot the region for two inequalities?

I'm looking to plot the two inequalities for the formula: abs(x+y+x.^2<3) and abs(y+x+y.^2<3)
with them both being on the same plot. How would I go about doing this please? Or any other similar example is fine.
Thanks in advance

2 commentaires

You should restore the original question here, and open a new question about fonts.
Rena Berman
Rena Berman le 30 Oct 2016
(Answers dev) restored the original question

Connectez-vous pour commenter.

 Réponse acceptée

Karan Gill
Karan Gill le 29 Juil 2016
Here's how to numerically evaluate the conditions and visualize them.
v = -5:0.01:5; % plotting range from -5 to 5
[x y] = meshgrid(v); % get 2-D mesh for x and y
cond1 = x+y+x.^2 < 3; % check conditions for these values
cond2 = y+x+y.^2 < 3;
cond1 = double(cond1); % convert to double for plotting
cond2 = double(cond2);
cond1(cond1 == 0) = NaN; % set the 0s to NaN so they are not plotted
cond2(cond2 == 0) = NaN;
cond = cond1.*cond2; % multiply the two condaces to keep only the common points
surf(x,y,cond)
view(0,90) % change to top view

7 commentaires

Image Analyst
Image Analyst le 29 Juil 2016
Modifié(e) : Image Analyst le 29 Juil 2016
Or, more directly:
v = -5:0.01:5; % plotting range from -5 to 5
[x, y] = meshgrid(v); % get 2-D mesh for x and y
conditions = (x + y + x.^2 < 3) & (y + x + y.^2 < 3);
cond = zeros(length(v)); % Initialize
cond(conditions) = NaN;
surf(x, y, cond)
view(0,90)
I'm looking to plot a system of inequalities in 3-D (ax+by+cz<d). How would I go about doing this please? Thanks in advance
Mai Le
Mai Le le 18 Avr 2021
please let me know why z is always equal to 1. If I want z=0 what should I do
@Mai Le, I don't see any z in the code.
Mai Le
Mai Le le 18 Avr 2021
when I delete the view (0,90) the graph is shown in Oxyz coordinates and z is always 1
v = -5:0.01:5; % plotting range from -5 to 5
[x y] = meshgrid(v); % get 2-D mesh for x and y
cond1 = x+y+x.^2 < 3; % check conditions for these values
cond2 = y+x+y.^2 < 3;
cond1 = double(cond1); % convert to double for plotting
cond2 = double(cond2);
cond1(cond1 == 0) = NaN; % set the 0s to NaN so they are not plotted
cond2(cond2 == 0) = NaN;
cond = cond1.*cond2.*0; % multiply the two condaces to keep only the common points
surf(x,y,cond)
The "cond" matrix is either 0 or nan, so why does it look curved/warped instead of flat?

Connectez-vous pour commenter.

Plus de réponses (2)

You could do this:
r = -5:0.01:5; % plotting range from -5 to 5
[x, y] = meshgrid(r); % Get 2-D mesh for x and y based on r
condition1 = x+y+x.^2 < 3;
condition2 = y+x+y.^2 < 3;
output = ones(length(r)); % Initialize to 1
output(~(condition1 & condition2)) = 0; % Zero out coordinates not meeting conditions.
imshow(output, 'xdata', r, 'ydata', r); % Display
axis on;

2 commentaires

Good afternoon, I was wonder is that possible to let the y-axis start form -5 to 5 (because the picture is 5 to -5)? Thank you!
Try
axis ij;
after you've called imshow().

Connectez-vous pour commenter.

Anna
Anna le 20 Nov 2017

2 votes

Is it possible to draw the region with a different color than black?

1 commentaire

There are various ways. The most directy way is to construct the third dimension as the RGB color space and multiply the output by different values as the RGB value. For example, if you want to color the white center area to RGB(64,128,192), you can manipulate as
l = length(r);
colored_output = zeros(l,l,3);
colored_output(:,:,1) = output * 64; % 0 remains 0, 1 is amplified to 64
colored_output(:,:,2) = output * 128;
colored_output(:,:,3) = output * 192;
colored_output = uint8(colored_output); % Convert double to uint8 values
imshow(colored_output, 'xdata', r, 'ydata', r);
axis on
If you want to color the surrounding black area, you can just add values to the zero values like
output1 = output;
output1(output1 == 0) = 64;
colored_output(:,:,1) = output1;

Connectez-vous pour commenter.

Catégories

En savoir plus sur Discrete Data Plots dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by