我具有一维中8个节点点的变量Y的温度值。现在,当我尝试绘制图时,将获得温度梯度作为单独的框,如下所示。我不想要这个。实现此结果的代码如下所示(热图1D)
Y =
1.0e + 03 *
4.1962
3.5087
2.8783
2.3026
1.7775
1.2967
0.8516
0.4318
figure (1)
imagesc (Y)
axis equal
axis off
colorbar;
我需要获得一个平滑的图像,如第二幅图所示(热图1D平滑),其中温度梯度之间的过渡是平滑的。
任何帮助将不胜感激!
答案 0 :(得分:1)
使用interpolation,我们可以实现这一目标。最初,我们有8个值。我们想对它们进行插值,因此我们有100个值,而不是8个。如果您对插值不熟悉,则初始值仍会存在,并且我们之间添加的所有值都将作为我们之间的梯度值已经有。
在我们的示例中,我们仅在1维上进行插值,并且可以使用interp1。
Y = 1000 * [4.1962 3.5087 2.8783 2.3026 1.7775 1.2967 0.8516 0.4318]';
Y = interp1(Y, linspace(1,8))';
figure (2)
imagesc (Y)
axis ([-3 5 0 100])
axis off
colorbar
interp1
的第二个参数是linspace(1,8)
。 linspace的默认行为是创建从第一个参数开始到最后一个参数结束的100个均匀间隔的值。这些是我们要插值的x值。在这种情况下,我们实际上没有任何x值,但是由于interp1
将所有Y
值都视为x的函数,因此假设Y
的索引为如果我们不作任何进一步说明,则为x值。
最后,我们将轴更改为与您在问题中发布的图像更相似,并获得以下信息。