如何将 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
是您要显示的图片)
与更改刻度标签相比的优势在于,绘制在图像顶部的其他内容将使用相同的坐标,检索鼠标光标位置等也是如此。这可能相关也可能不相关,但很高兴知道。
我有一张图片(每个像素的强度矩阵)。当用 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
是您要显示的图片)
与更改刻度标签相比的优势在于,绘制在图像顶部的其他内容将使用相同的坐标,检索鼠标光标位置等也是如此。这可能相关也可能不相关,但很高兴知道。