MATLAB Answers

1-D Temperature Gradient

6 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
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!