Plot {(x,y,z)| x²+y²<1, 0<z<x+2}

2 vues (au cours des 30 derniers jours)
Eileen Lassler
Eileen Lassler le 10 Fév 2021
Réponse apportée : Rik le 10 Fév 2021
I'm not sure abot the code, because of the 2 constraints. I hope someone can help me.

Réponses (2)

Constantino Carlos Reyes-Aldasoro
It depends on what you want. One way to code this would be to define your space, i.e. the range of each of each variable, say x goes from -5 to 5 in steps of 0.1:
x=-5:-.1:5;
and the same for y and z. Then x^2 + y^2 < 1 becomes a condition, those points below 1 could be selected and those above discarded, then you do the same with the second condition and your answer could be a cloud of points where the two conditions intersect.

Rik
Rik le 10 Fév 2021
Same general idea as @Constantino Carlos Reyes-Aldasoro, but more in steps.
Use linspace or colons to create one or three vectors to define your coordinate grid.
Then you can use ndgrid or meshgrid to expand that/those vector(s) to a full grid.
Now use element-wise operations (.* and ./ and .^) to compute . The logical operators < and > will work element-wise by default.
Now you have logical arrays where the combination of x,y,z is either valid or invalid. You can use logical indexing to either remove them, or mark a value array with NaN.
Now you have x y and z vectors, which you can input to a function like plot3 to show the pointcloid.

Catégories

En savoir plus sur Line Plots dans Help Center 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