如何将xticks和yticks与常数相乘,并在Matlab 2019的图中显示它?

问题描述 投票:0回答:2

我有一张图片(每个像素的强度矩阵)。用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'的值用作索引。”

matlab matlab-figure
2个回答
1
投票

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

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

(假设img是要显示的图像)

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


0
投票

我知道了。

xticklabels(xticks * pixel_spacing(2))

yticklabels(yticks * pixel_spacing(1))

© www.soinside.com 2019 - 2024. All rights reserved.