How can I plot the region for two inequalities?
37 次查看(过去 30 天)
显示 更早的评论
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 个评论
Walter Roberson
2016-9-11
You should restore the original question here, and open a new question about fonts.
采纳的回答
Karan Gill
2016-7-29
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 个评论
Walter Roberson
2021-4-19
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)
Image Analyst
2021-4-19
The "cond" matrix is either 0 or nan, so why does it look curved/warped instead of flat?
更多回答(2 个)
Image Analyst
2016-7-29
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 个评论
Ming Zhen Ellis Tiew
2020-10-5
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/371146/image.png)
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!
Anna
2017-11-20
Is it possible to draw the region with a different color than black?
1 个评论
Ayka
2022-12-14
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;
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Green 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!