gpt4 book ai didi

maps - 在 Matlab GUI 中设置 map 轴的父级

转载 作者:行者123 更新时间:2023-12-01 14:59:33 25 4
gpt4 key购买 nike

我正在使用映射工具箱在 MATLAB 中编写一个基本的 GUI。 GUI 将显示灰度图像,然后在数据上绘制离散点,所有这些都在必要的 map 投影上。重要的是我绘制到 map 轴(那些由 axesm 命令创建的)而不是 Vanilla 笛卡尔空间。我可以从命令行执行所有这些操作,但我找不到实现 GUI 版本的方法,这让我抓狂。

问题是我需要将 map 轴指定为父图的子图。法线轴有一个可以设置的属性,做类似的事情:

axesHandle = axes('Parent', parentHandle, ...);

set(axesHandle, 'Parent', parentHandle);

但是,对于 axesm 函数创建的 map 轴,没有等效的父属性,因此我无法在图中操纵轴。我该怎么做?


更新:如果我在空图中的 map 轴内创建绘图,get(figureHandle, 'Children') 返回轴对象的句柄(感谢@slayton!),因此必须隐式添加 map 轴对象通过 MATLAB 给图形的 children 。

我是否应该担心 map 轴不会返回到父图形,或者我应该让它这样?我想知道这是否是 MATLAB 迫使我不遵守手册告诉我实现的标准的经典案例。

最佳答案

通过阅读您的问题,我认为您正在尝试做的是捕获轴对象的句柄。这可以在使用轴或子图创建轴时完成

a = axes();
a = subplot(x,y,z);
% both return an handle to the newly created axes object

此外,如果坐标轴是通过函数调用自动创建的,例如 plotimage,您也可以获得坐标轴句柄:

p = plot(1:10); %returns a handle to a line object
a = get(p,'Parent');

i = image(); %returns a handle to an image object
a = get(i, 'Parent');

最后,这两个选项都不可用,您始终可以通过以下方式从其包含的图形中获取坐标轴句柄:

a = get(figureHandle, 'Children');

请记住,如果您的图形包含多个轴,这将返回一个轴 handle 向量。

最后,当需要绘制时,将点绘制到包含 map 图像的轴上,您只需调用:

line(xPoints, yPoints, 'linestyle', 'none', 'marker', '.', 'color', 'r', 'size', 15)

这将使用大红点绘制线的顶点。

我不确定这是否能回答您的问题,因为您提供的代码与您提出的问题不符。

您提供的代码看起来像是在尝试将轴从一个图形移动到另一个图形。你完全可以做到这一点!

f = figure('Position', [100 100 100 100]);
a = axes('Parent', f);
pause
f2 = figure('Position', [250 100 100 100]);
set(a,'Parent', f2);

关于maps - 在 Matlab GUI 中设置 map 轴的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11141243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com