3D plot a function f(x,y,z)

I have a function of the coordinates x,y and z like the following :
function f= f(x,y,z)
if (x>0) & (y<1) % this is just an example, do whatever you want with the variables
f= 1;
else
f= x-y+2*z;
end
end
That I want to plot like by using the fimplicit3() function :
syms f(x,y,z)
f(x,y,z) = x^2 + y^2 - z^2;
fimplicit3(f)
The problem is fimplicit3 deals with the symbolic variables but fails to take as argument a function that I 'manually' specified above.
Is there another way to plot such a function ?
I just wanna draw some balls in space.

回答 (2 件)

David Hill
David Hill 2022 年 10 月 13 日

1 投票

g=fimplicit3(@f);
function g = f(x,y,z)
g=1./x.^2 - 1./y.^2 + 1./z.^2;
end

6 件のコメント

Omar Keele
Omar Keele 2022 年 10 月 13 日
In this case g should not be a surface, I don't understand. Every point in space should have a color assigned to it, the 'value' of the color should be g(x0,y0,z0) for the point (x0,y0,z0).
Maybe the fimplicit3() is not what I am looking for ?
Torsten
Torsten 2022 年 10 月 13 日
fimplicit3 plots the surface for which f(x,y,z) = 0.
For your function, this will be impossible for (x>0 & y<1) since f will always be 1 there.
Omar Keele
Omar Keele 2022 年 10 月 13 日
編集済み: Omar Keele 2022 年 10 月 13 日
This is not an issue, to draw a line segment in space, take f to be
function f= f(x,y,z)
if x=1 & y=2 & z<3 & z>-3
f= 1
else
f=0
end
end
We can draw isolated points in space if we wish, can't we?
Torsten
Torsten 2022 年 10 月 13 日
I think you have a false impression of what fimplicit plots.
Omar Keele
Omar Keele 2022 年 10 月 13 日
I mentioned the fimplicit to illustrate, do you know a matlab command to do this ? Maybe scatter3D?
Something that plot values of f(x,y,z) with different colors, the space should be filled ! (or maybe empty if the value is 0)

サインインしてコメントする。

Drc
Drc 2023 年 4 月 20 日

0 投票

guys i need this shape code

1 件のコメント

DGM
DGM 2023 年 4 月 20 日
編集済み: DGM 2023 年 4 月 20 日
Start a new question at the "Ask" link at the top of the page. Include enough information so that other people know specifically what you want. Considering that specific details were intentionally omitted from the image, I have to wonder why you're making it difficult.
Otherwise, see cylinder(), patch(), surf()

サインインしてコメントする。

カテゴリ

製品

リリース

R2022b

質問済み:

2022 年 10 月 13 日

編集済み:

DGM
2023 年 4 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by