1-D Temperature Gradient

23 views (last 30 days)
Kubilay Akpinar
Kubilay Akpinar on 4 May 2021
Commented: J. Alex Lee on 11 May 2021
Hey everyone,
I am trying to figure out how to draw a temperature gradient of a 1-D system. I have tried to understand meshgrid but I couldn't find a way out. Plus, I have tried to use contourf but still didn't work for me. I might be using these functions wrong.
I have 19 different points and all of those points have the same x-coordinate value, only their y-coordinate values change. For example, Point_1(0, 1), Point_2(0,2), Point_3(0,3)... Basically, they form a vertical line on a coordinate system. Also, I have corresponding temperatures for every point. I want to plot a temperature gradient looking like color bars standing next to graphs but I couldn't find a proper way to do that. Could any of you please help me out to understand how to do that?
  9 Comments
Kubilay Akpinar
Kubilay Akpinar on 8 May 2021
Edited: Kubilay Akpinar on 8 May 2021
I am not refusing to share my data. I am a newbie here and that's the main reason why I am having difficulties to explain what I want and what I have.
I have the y-coordinates of nodes starting from zero to total thickness of conveyor belt and the mixture on it with deltax increments.
deltax = 0.5 [mm]
x_tot = 9 [mm] %Total thickness of belt + mixture
yp = (0 : deltax : x_tot) % Y-Coordinates of nodes
My time vector is
v_belt = 0.6 [m/s]
L_belt = 30 [m]
t_cont = L_belt / v_belt %Duration which mixture is contact with conveyor belt
delta_t = 0.005
N_times = t_cont / delta_t %Number of time steps
And after executing an explicit solver I get my temperature values for each node for each time step which is a vector of 19 x 10000 (node_num x N_times). Let's say
T_final = rand(numel(yp), N_times)
I tried the answer below, but it doesn't give me what I want, I am still searching for the answer but I am not sure if the answer is correct and I am doing something wrong. That's why I haven't accepted this answer yet.
When I use the code given below I get this
This result is not wrong, the code given works fine.
However, I tried to use imagesc function and I got this result, but still it is not what I exactly want, because this function returns an image as far as I understand.
What I want is to apply this imagesc function result onto mesh grid that I shared in my previous comments. To be more specific, the colorbar standing next to imagesc function result looks like excatly what I desire to do just mesh (or node) lines are missing. That's why I thought I should use meshgrid and then contourf function at first.
I hope this comment makes it easier to understand my problem. I don't have any intentions to make it complicated to get some help from you. Thank you for your understanding and effort.
J. Alex Lee
J. Alex Lee on 11 May 2021
what exactly is it about the result "which is not wrong" that isn't what you want?

Sign in to comment.

Answers (1)

J. Alex Lee
J. Alex Lee on 7 May 2021
Edited: J. Alex Lee on 7 May 2021
your time and space point vectors are
t = 0:0.005:50; % but this gives you 10,001 points, not 10,000...so you decide what you have
x = linspace(0,9,19); % just guessing based on your image
making up some temperature matrix with the dimensions you have
tmp = rand(1,numel(x),numel(t));
it is senseless to have your first dimension in your temperature data matrix, so need to squeeze out the first dimension
tmp_a = squeeze(tmp);
turns out you don't even need meshgrid because contourf will imply it for you (if you get the order of dimensions right)
contourf(t,x,tmp_a)
or if you want t and x transposed
contourf(x,t,transpose(tmp_a))

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!