3 views (last 30 days)

Show older comments

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?

J. Alex Lee
on 11 May 2021

what exactly is it about the result "which is not wrong" that isn't what you want?

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))

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

Start Hunting!