Plotting 3 variables of a single function

18 views (last 30 days)
Kayn on 28 Jan 2014
Commented: Giuseppe Naselli on 24 Apr 2014
Is it possible to plot three variables x,y and z of a single function f?
i.e. f = x^2 + y^2 + z^2, for example?
I'd want to plot the function 'f' with a range of values for x,y and z.
I've been looking at contour maps for two variables and would now, somehow, like to expand it to three variables and able to represent the function pictorially via a plot in Matlab.

Answers (2)

AJ von Alt
AJ von Alt on 28 Jan 2014
Sliceomatic on Matlab file exchange is a useful tool for this sort of visualization.
AJ von Alt
AJ von Alt on 28 Jan 2014
% define an array of values for x y and z
x = -10:0.1:10;
y = -10:0.1:10;
z = -10:0.1:10;
% create a meshgrid
[Xmesh,Ymesh,Zmesh] = meshgrid(x,y,z);
% compute the function value at the meshgrid points
f = Xmesh.^2 + Ymesh.^2 + Zmesh.^2;
% launch sliceomatic
You can then select slices using the x y and z controls or view layers using the iso surface control
Giuseppe Naselli
Giuseppe Naselli on 24 Apr 2014
Hi All,
I need to do the same (plotting F as function of X,Y,Z) but I do not know the relationship between them.
Basically I have 4 column vectors F,X,Y,Z.
I can do the meshgrid(X,Y,Z) but I do not know how to manipulate F in order to use sliceomatic
Any idea?
Thanks in advance

Sign in to comment.

Walter Roberson
Walter Roberson on 28 Jan 2014
For a full plot of 3 independent variables and one resultant variable, you need to encode the resultant variable as marker shape (one scatter3 or plot3 call for each different marker shape), or point size (scatter3; or a lot of plot3 calls), or as color (scatter3 or patch or a lot of plot3 calls), or as transparency (patch). (Though transparency by itself is hard to see.)

Community Treasure Hunt

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

Start Hunting!