如何更改图像轴标签

Pra*_*nto 6 matlab matlab-figure

我试图用一些纬度/经度改变图像轴标签,但我找不到如何做到这一点.我尝试了一些基本命令,如:

imagesc(data)
axis(meshgrid([-180:20:180],[-90:20:90]))
colorbar
Run Code Online (Sandbox Code Playgroud)

但这些表达出现了:

imagesc(数据),axis(meshgrid([ - 180:20:180],[ - 90:20:90])),colorbar操作数到|| 和&&运算符必须可转换为逻辑标量值.

Error in axis>allAxes (line 448)
result = all(ishghandle(h)) && ...

Error in axis (line 57)
if ~isempty(varargin) && allAxes(varargin{1}). 
Run Code Online (Sandbox Code Playgroud)

有谁能够帮我?仅供参考,我的图像轴标签是数据顺序(从0到N).

我想要的结果是图像看起来像世界地图,带有经纬网/网格线作为轴.应该看起来像这样:

在此输入图像描述

Eit*_*n T 11

根据您的问题,我推断您要将x轴标签设置为-180到180,并将y轴标签设置为-90到90.为此,您应该更改轴对象的XTickLabelYTickLabel属性(请注意您还需要通过相应地修改XTickYTick属性来调整每个轴的刻度数).

因此,假设您的图像存储在矩阵中data并显示它imagesc(data),以下是如何将x轴中的刻度标签更改为-180到180:

xticklabels = -180:20:180;
xticks = linspace(1, size(data, 2), numel(xticklabels));
set(gca, 'XTick', xticks, 'XTickLabel', xticklabels)
Run Code Online (Sandbox Code Playgroud)

同样,这里是如何将y轴上的刻度标签更改为-90到90:

yticklabels = -90:20:90;
yticks = linspace(1, size(data, 1), numel(yticklabels));
set(gca, 'YTick', yticks, 'YTickLabel', flipud(yticklabels(:)))
Run Code Online (Sandbox Code Playgroud)

它应该是这样的:

在此输入图像描述