3D plot of a matrix

I have constructed a 2D matrix A for Temperature as a function of position ( 1 dimensional ) & time, I want to plot a surface for Temperature( z -axis ) with x & y being position and time .
e.g : A = [ 200 300 400 500; 400 500 800 1000; 1200 1500 1600 2000] . 3 rows = 3 time steps (1 sec,2 sec, 3sec) , 4 cols = 4 position. here we have 4 points, where the temp. for the 1st point is 200 at (t=1), 400 at (t=2) , 1200 at (t=3).
I want a surface plot for the values of temperature, which is saved in the matrix. Thanks

Answers (3)

KSSV
KSSV on 1 Jun 2018
A = [ 200 300 400 500; 400 500 800 1000; 1200 1500 1600 2000] ;
t = [1 2 3] ;
pos = [100 200 400 1200] ;
pcolor(t,pos,A')

4 Comments

I have 10,000 time steps, is there any command for generating a matrix starting from 1 to n ( say 10,000 ) with a difference of 1 in each value like [ 1 2 3 4 5 ...... 9999 10,000 ] ?
iwant = 1:10000 ;
The surface created using surf (t,pos,A) looks very dark . How to get color contrast in it ?
KSSV
KSSV on 1 Jun 2018
shading interp
after the plot.

Sign in to comment.

Paridhi Yadav
Paridhi Yadav on 1 Jun 2018
Edited: Paridhi Yadav on 1 Jun 2018
You can do it like this, since you have not given position I have assumed (1, 2, 3, 4) to be the position.
A = [ 200 300 400 500; 400 500 800 1000; 1200 1500 1600 2000]
p = [1 2 3 4] ;
t = [1 2 3] ;
surface(p,t,A)
Hello Anshuman,
You can just use the surf command for this. It will take care of your axis and color contrast itself.
A = [ 200 300 400 500; 400 500 800 1000; 1200 1500 1600 2000] ;
surf(A)
In this case, as the matrix is of dimension 3x4 only, so the plot will also have it's x-axis and y-axis with scale 3 and 4 but when you will create your vector of 10,000 timestamps, so I am supposing that your matrix will also have some similar dimension. So, it will do it by itself.

Asked:

on 1 Jun 2018

Answered:

on 1 Jun 2018

Community Treasure Hunt

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

Start Hunting!