# 2D contour plot with given matrix

2 views (last 30 days)
David Krouse on 23 Nov 2021
Commented: Star Strider on 24 Nov 2021
I would like to create a contour plot for a heat transfer application, where the values of the matrix are nodal temperature values over the 2d domain of (x 0 to 0.5) and (y 0 to 1). Using the following values
25, 25, 25
111.5, 137.8, 245.1
146.3, 178.3, 296.4
111.5, 137.8, 245.1
25, 25, 25
Where, nodes are seperated by 0.25 (i.e the value at (0.5,0.5) is 296.4).
Please provide the generated plot to ensure the generated codes is functioning.

Star Strider on 23 Nov 2021
Two possibilities —
M = [25, 25, 25
111.5, 137.8, 245.1
146.3, 178.3, 296.4
111.5, 137.8, 245.1
25, 25, 25];
figure
contour(M)
figure
contourf(M)
.
Star Strider on 24 Nov 2021
That would be relatively straightforward.
M = [25, 25, 25
111.5, 137.8, 245.1
146.3, 178.3, 296.4
111.5, 137.8, 245.1
25, 25, 25];
xv = linspace(0, 0.5, size(M,2));
yv = linspace(0, 1.0, size(M,1));
figure
contour(xv,yv,M)
axis('equal') % Optional
figure
contourf(xv,yv,M)
axis('equal') % Optional
Since I’m not certain how the ‘xv’ and ‘yv’ vectors correspond to the ‘M’ matrix, it might be necessary to re-define them in terms of the dimeensions of ‘M’ if I guessed wrong. However, re-scaling them is straightforward.
Also, with axis('equal') there seems to be a bug in the x-axis ticks here, although it could just be a problem with the online Run feature, since it doesn’t appear when I run the same code offline on my computer (although the tick label at 0.5 still fails to plot). That can be fixed manually if necessary.
.