如何将 xticks 和 yticks 与常量相乘并在 Matlab 2019 中显示在图中?

How do I multiply the xticks and yticks with constant and have it displayed in the figure in Matlab 2019?

我有一张图片(每个像素的强度矩阵)。当用 matlab 的 imagesc 绘制时,x、y 轴显然以像素为单位。我知道 1 个像素在 x 和 y 方向上对应于 0.6250 毫米。

如何仅更改图中轴的比例以显示毫米而不是像素,即如何将 xticks 和 yticks 乘以 0.6250 并将其显示在图中?

我试过:

new_x = xticks*pixel_spacing(2);

set(gca,'xticklabels', new_x)

但这会导致错误 “无法使用 'matlab.graphics.axis.Axes' 类型的值作为索引。”

我想通了。

xticklabels(xticks*pixel_spacing(2))

yticklabels(yticks*pixel_spacing(1))

imagesc 有一个语法,您可以在其中指定像素的缩放比例(请参阅 documentation)。

x = [1,size(img,2)] * pixel_spacing;
y = [1,size(img,1)] * pixel_spacing;
imagesc(x,y,img);

(假设 img 是您要显示的图片)

与更改刻度标签相比的优势在于,绘制在图像顶​​部的其他内容将使用相同的坐标,检索鼠标光标位置等也是如此。这可能相关也可能不相关,但很高兴知道。