1-D Temperature Gradient

7 次查看(过去 30 天)
Kubilay Akpinar
Kubilay Akpinar 2021-5-4
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 个评论
Kubilay Akpinar
Kubilay Akpinar 2021-5-8
编辑:Kubilay Akpinar 2021-5-8
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 2021-5-11
what exactly is it about the result "which is not wrong" that isn't what you want?

请先登录,再进行评论。

回答(1 个)

J. Alex Lee
J. Alex Lee 2021-5-7
编辑:J. Alex Lee 2021-5-7
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))

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by