How to get a 3D contour plot with two matrices and a vector

I currently am using surf to plot the Image attached (see image of the surface plot, internetpic.jpg) . My code is;
surf(x_new',T_disc,all_out);
where x_new is a 1000x97 matrix, T_disc is a vector of length 97, and all_out is a 97x1000 matrix. Whilst the attached image is good, I would preferably like to have lines representing the data Like the second plot attached (picture of graphs with the blue lines, preferedpic.jpg).
I believe the problem is that x_new is a matrix, where as contour3 for example would prefer this to be a vector. Any suggestions?

 Accepted Answer

Use repmat to create a matrix from vector
Use plot3 to create lines
% surf(x_new',T_disc,all_out);
T_disc1 = repmat(T_disc(:),[1 1000]);
plot3(x_new',T_disc1,all_out);

4 Comments

Thank you for your answer, I will try to implement it tomorrow when I’m near a comp.
Darova, I believe this is the solution, however when I attempt to use it I get the picture attached. (see pic.jpg attached). I would however like the picture attached to the original question (with the blue lines). So I would need to only plot some of the data in the rows? I tried
plot3((x_new(:,1:10:end))',T_disc1(1:10:end,:),all_out(1:10:end,:));
but it just gave the same answer.
You mean color or direction?
Derova, I managed to solve my problem by using a loop
for i=1:2:size(s_out) %size(s_out) is the length of the T_disc1 row
plot3((x_new(:,i))',T_disc1(i,:),all_out(i,:),'b');
grid on
hold on
end
Thanks for your help!

Sign in to comment.

More Answers (0)

Asked:

on 13 Feb 2020

Commented:

on 14 Feb 2020

Community Treasure Hunt

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

Start Hunting!