Matlab:是否可以自动更改图像轴标签以适合我的数据?

时间:2019-03-28 18:29:11

标签: matlab matlab-figure

我正在尝试使用imagesc函数,因为我需要绘制3D数据的2D彩色图,其中颜色表示2个输入的每种组合以及x和y轴的信号输出强度应该代表输入参数。我看了一个类似的问题: How to change image axis labels

问题是我事先不知道输入参数将具有的值的范围,它们也不一定是“ nice”,“ round”数字,它们可以以10或其他一些整数隔开。更糟糕的是,根据我进行的测试,我的数据可能具有颠倒的输入顺序。例如,如果我手动将x轴设置为从低到高的值(作为标准),那么如果我的参数值是从高到低输入的,那么它实际上可能会比我的数据实际落后。

example of my output image using imagesc function

我提供了到目前为止的图像示例。 y轴保留为默认值,这仅表明我的输出信号矩阵中有180多行。我使用linspace更改了x轴,以使其对应于输入参数的范围,从最低到最高。但是,图像应该水平翻转,因为我知道右边的黄点应该对应于x轴上的低值-也就是说,它应该在左侧。

因此,我需要使它自动发生,以使我的输出信号的强度正确匹配2个输入参数的组合(在x和y轴上显示),并且每种组合的输出均表示为色标上的颜色。

使用imagesc不能做到这一点吗?我是否必须使用pcolor函数?还是有其他方法?

1 个答案:

答案 0 :(得分:0)

使用pcolor函数,我得到了想要的东西。它直接将(矩阵)变量之间的直观关系转换为具有正确轴比例的图形图像。我有3个变量;我们称它们为fHZ。关键是要制作一个颜色图,其中的值来自Z,该值对应于每个唯一的fH值对,类似于x,y坐标。因此,我将fH做成矩阵(具有相同的尺寸),其中f的所有列都是一个列向量的副本,而H的所有行是一个行向量的副本。 (Z已经是一个具有相同尺寸的矩阵。)这样,如果我从fH矩阵中都选择一个i,j元素,则会得到一个唯一的{{1} },f对,可以将其映射到H中的i,j元素。然后只需使用:

Z

我得到了这样的图像(带有一些其他命令): f,H color plot example

轴编号标签会自动调整,以匹配pcolor(f,H,Z) f的值。