4D plot in Matlab

I have x,y,z as 3 axes & A is a matrix whose elements corresponds to for each point of x,y,z. How to plot A w.r.t. x,y & z axis?

3 Comments

KSSV
KSSV on 14 May 2019
Attach your data.....
z = 9.5 for all coordinates
x = -3.5:1:4.5
y = 1.5:1:9.5
for Z=9.5
x --> -3.5 -2.5 -1.5 -0.5 0.5 1.5 2.5 3.5 4.5
y
1.5 0.7 0.8 0.7 0.9 0.8 0.8 0.7 0.7 0.8
2.5 0.8 0.8 0.7 0.9 0.7 0.7 0.9 0.8 0.9
3.5 0.8 1 0.9 0.9 0.9 0.9 1 0.8 0.9
4.5 0.7 0.9 0.8 0.9 0.7 0.8 0.8 0.8 0.8
5.5 0.7 0.9 0.6 0.7 0.7 0.9 0.7 0.8 0.9
6.5 0.7 0.8 0.8 0.7 0.8 0.7 0.6 0.6 0.7
7.5 0.7 0.9 0.7 0.7 1 0.6 0.6 0.7 0.8
8.5 0.8 1 0.8 0.8 0.9 0.6 0.7 0.6 0.8
9.5 0.7 0.8 0.8 1 0.8 0.7 0.8 0.8 0.7
Thankyou so much for your response but this doesnt work for my data.. can you share some other idea?

Sign in to comment.

Answers (2)

KSSV
KSSV on 16 May 2019
[X,Y,Z] = peaks(100) ;
surf(X,Y,Z,Z)
Hi Manisha,
Based on your given data sets (assuming that some large parts of data belong to [A] as shown below from XY). So you have x, y, z vs. A. In this case surf() would be the good option:
XY = [1.5 0.7 0.8 0.7 0.9 0.8 0.8 0.7 0.7 0.8 ;
2.5 0.8 0.8 0.7 0.9 0.7 0.7 0.9 0.8 0.9 ;
3.5 0.8 1 0.9 0.9 0.9 0.9 1 0.8 0.9 ;
4.5 0.7 0.9 0.8 0.9 0.7 0.8 0.8 0.8 0.8;
5.5 0.7 0.9 0.6 0.7 0.7 0.9 0.7 0.8 0.9 ;
6.5 0.7 0.8 0.8 0.7 0.8 0.7 0.6 0.6 0.7 ;
7.5 0.7 0.9 0.7 0.7 1 0.6 0.6 0.7 0.8 ;
8.5 0.8 1 0.8 0.8 0.9 0.6 0.7 0.6 0.8 ;
9.5 0.7 0.8 0.8 1 0.8 0.7 0.8 0.8 0.7 ];
X =[-3.5 -2.5 -1.5 -0.5 0.5 1.5 2.5 3.5 4.5 ];
Y = XY(:, 1)'; % or Y =1.5:1:9.5;
for ii = 1:numel(X)
x(ii,:)=[X];
y(ii,:) =[Y];
end
z = 9.5*ones(9,9);
A = XY(:, 2:end); % 1st column is Y and the rest [A], right?
surf(x, y, z, A), axis tight; shg
Good luck.

Categories

Asked:

on 14 May 2019

Commented:

on 20 May 2019

Community Treasure Hunt

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

Start Hunting!