如何使用 X、Y 和 Z 值矩阵绘制等高线图?

how to plot a contour map using a matrix for X, Y and Z values?

M矩阵为:

M = [0  5   10  15  20  25  30  35  40  45
5   0.0137945780000000  0.0140902780000000  0.0141900320000000  0.0142399090000000  0.0142897860000000  0.0143111620000000  0.0143289750000000  0.0143432260000000  0.0143503510000000
10  0.0211336350000000  0.0218034130000000  0.0220955500000000  0.0222238060000000  0.0223413730000000  0.0223983750000000  0.0224304390000000  0.0224731910000000  0.0224803160000000
15  0.0293099150000000  0.0304570880000000  0.0309416080000000  0.0311945560000000  0.0313833770000000  0.0314795680000000  0.0315330080000000  0.0315900100000000  0.0316113860000000
20  0.0383127290000000  0.0401261180000000  0.0408457730000000  0.0412590400000000  0.0415333640000000  0.0416723080000000  0.0417684990000000  0.0418468770000000  0.0418753790000000
25  0.0486978520000000  0.0512202070000000  0.0522711890000000  0.0528697140000000  0.0532758560000000  0.0534718020000000  0.0536249960000000  0.0537247500000000  0.0537746270000000
30  0.0601945210000000  0.0635255980000000  0.0649399690000000  0.0657807550000000  0.0663151520000000  0.0665859130000000  0.0667818590000000  0.0669172400000000  0.0669778050000000
35  0.0730877480000000  0.0774769320000000  0.0794007620000000  0.0804838080000000  0.0811927750000000  0.0815561650000000  0.0818411770000000  0.0819979340000000  0.0820976880000000
40  0.0854358900000000  0.0909188070000000  0.0933699100000000  0.0946987780000000  0.0955823150000000  0.0960347710000000  0.0963874740000000  0.0965834190000000  0.0967366130000000
45  0.0994477890000000  0.106052941000000   0.109099006000000   0.110823328000000   0.111820870000000   0.112383769000000   0.112818412000000   0.113057109000000   0.113228116000000];

如何使用矩阵M绘制等高线图..矩阵M的第一行和第一列将是每个值的坐标..例如:

对于坐标 5,5,等值线图的 z 值将为 0.01379458,对于坐标 30,20,z 值将为 0.06578076。这个想法是绘制矩阵 M 的所有坐标并将 z 值用于等值线图。

最好的解决方法是什么?

要绘制 3D 等高线,您可以使用 contour3。 x-values 由 M(1,2:end) 给出。这意味着第一行,第 2 列直到最后。 y-values M(2:end,1) 也一样。 z 是矩阵的其余部分:M(2:end,2:end)

完整代码:

M = [0  5   10  15  20  25  30  35  40  45
5   0.0137945780000000  0.0140902780000000  0.0141900320000000  0.0142399090000000  0.0142897860000000  0.0143111620000000  0.0143289750000000  0.0143432260000000  0.0143503510000000
10  0.0211336350000000  0.0218034130000000  0.0220955500000000  0.0222238060000000  0.0223413730000000  0.0223983750000000  0.0224304390000000  0.0224731910000000  0.0224803160000000
15  0.0293099150000000  0.0304570880000000  0.0309416080000000  0.0311945560000000  0.0313833770000000  0.0314795680000000  0.0315330080000000  0.0315900100000000  0.0316113860000000
20  0.0383127290000000  0.0401261180000000  0.0408457730000000  0.0412590400000000  0.0415333640000000  0.0416723080000000  0.0417684990000000  0.0418468770000000  0.0418753790000000
25  0.0486978520000000  0.0512202070000000  0.0522711890000000  0.0528697140000000  0.0532758560000000  0.0534718020000000  0.0536249960000000  0.0537247500000000  0.0537746270000000
30  0.0601945210000000  0.0635255980000000  0.0649399690000000  0.0657807550000000  0.0663151520000000  0.0665859130000000  0.0667818590000000  0.0669172400000000  0.0669778050000000
35  0.0730877480000000  0.0774769320000000  0.0794007620000000  0.0804838080000000  0.0811927750000000  0.0815561650000000  0.0818411770000000  0.0819979340000000  0.0820976880000000
40  0.0854358900000000  0.0909188070000000  0.0933699100000000  0.0946987780000000  0.0955823150000000  0.0960347710000000  0.0963874740000000  0.0965834190000000  0.0967366130000000
45  0.0994477890000000  0.106052941000000   0.109099006000000   0.110823328000000   0.111820870000000   0.112383769000000   0.112818412000000   0.113057109000000   0.113228116000000];

contour3(M(1,2:end),M(2:end,1),M(2:end,2:end))

结果

如果您想要更多级别,可以指定第四个输入参数。例如

contour3(M(1,2:end),M(2:end,1),M(2:end,2:end),50) 

给予