MATLAB中ginput函数用法

目录

语法

说明

示例

标识点和绘制坐标

返回用于选择坐标的按键

标识地理坐标区上的点


ginput函数的功能是标识坐标区坐标。

语法

cs 复制代码
[x,y] = ginput(n)
[x,y] = ginput
[x,y,button] = ginput(___)

说明

**[x,y] = ginput(n)**可用于标识笛卡尔坐标区、极坐标区或地理坐标区内 n 个点的坐标。要选择一个点,请将光标移至所需位置,然后按下鼠标按键或键盘上的键。在选中全部 n 个点之前,按 Return 键可停止选择。MATLAB® 返回所选点的坐标。如果没有坐标区,则调用 ginput 会创建一个笛卡尔坐标区对象。

[x,y] = ginput可用于选择无限多个点,直到按 Return 键为止。

[x,y,button] = ginput(___) 还返回用于选择每个点的鼠标按键或键盘上的键。

示例

标识点和绘制坐标

使用 ginput 标识一个坐标区中的四个点。要选择各点,请将光标移至所需位置,然后按鼠标按键或键。

cpp 复制代码
[x,y] = ginput(4)

如图所示:

输出结果为:

cs 复制代码
x =

    0.3699
    0.4425
    0.5450
    0.6130


y =

    0.6690
    0.5605
    0.4719
    0.6025

绘制标识的点。

cs 复制代码
plot(x,y);

如图所示:

返回用于选择坐标的按键

使用 ginput 标识一个坐标区中的五个坐标。要选择各点,请将光标移至所需位置,然后按鼠标按键、小写字母键、大写字母键、数字键或空格键。返回用于选择每个点的鼠标按键或键的 ASCII 数字。

cs 复制代码
[x,y,button] = ginput(5);
button
button =

     3
   104
    32
    51
    82

在本例中,标识坐标用到了鼠标右键 (3)、小写字母键 h(104)、空格键 (32)、数字键 3 (51) 和大写字母键 R(82)。

标识地理坐标区上的点

创建地理坐标区并标识四个点的纬度和经度坐标。然后,绘制您标识的点。

cs 复制代码
geoaxes
[lat,lon] = ginput(4);

如图所示:

使用 hold on 命令和 geolimits 函数来保持地图范围不变。绘制标识的点。

cs 复制代码
hold on
geolimits('manual')
geoscatter(lat,lon,'filled','b')

如图所示:

参数说明

n --- 点的数目

要标识的点的数目,指定为正整数。

x --- 标识的坐标的第一个分量

标识的坐标的第一个分量,以标量或列向量形式返回。

  • 对于笛卡尔坐标区,值为 x 坐标。

  • ​对于极坐标区,值为 theta 角度。theta 角度在范围 [tmin, tmin+2*pi] 内,其中 tmin 是极坐标区的 ThetaLim 向量的第一个值。角度是在 ThetaDir 属性指定的方向上从零角度位置开始测量的。零角度的位置由 ThetaZeroLocation 属性指定。

  • 对于地理坐标区,值是纬度。正值对应于北纬,负值对应于南纬。

如果选择坐标区范围之外的点,则这些值是相对于笛卡尔坐标区和地理坐标区的原点的。对于极坐标区,这些值是相对于 ThetaZeroLocation 的。

y --- 标识的坐标的第二个分量

标识的坐标的第二个分量,以标量或列向量形式返回。

  • 对于笛卡尔坐标区,值为 y 坐标。

  • ​对于极坐标区,值是半径。每个半径值都大于或等于 rmin,其中 rmin 是极坐标区的 RLim 向量中的第一个值。

  • 对于地理坐标区,值是经度。正值对应于原点以东的位置,负值对应于原点以西的位置。

如果选择坐标区范围之外的点,仍会返回相对于坐标区原点的值。

button --- 用于标识点的键或鼠标按键

用于标识点的键或鼠标按键,以标量或列向量形式返回。对于鼠标按键,用 1 表示鼠标左键,2 表示鼠标中键,3 表示鼠标右键。双击由两个值表示。第一个值为 1 表示鼠标左键,为 2 表示鼠标中键,为 3 表示鼠标右键。第二个值为 1。

键盘上的键由其对应的 ASCII 数字表示。屏幕上的点击由 1 表示。

例如,调用 ginput,用鼠标中键点击,用鼠标右键双击,然后按 Enter 键。输出 button 是一个包含 2、3 和 1 的向量。

cs 复制代码
[~,~,button] = ginput
button =

     2
     3
     1
相关推荐
badhope4 小时前
Mobile-Skills:移动端技能可视化的创新实践
开发语言·人工智能·git·智能手机·github
码云数智-园园5 小时前
微服务架构下的分布式事务:在一致性与可用性之间寻找平衡
开发语言
C++ 老炮儿的技术栈5 小时前
volatile使用场景
linux·服务器·c语言·开发语言·c++
hz_zhangrl5 小时前
CCF-GESP 等级考试 2026年3月认证C++一级真题解析
开发语言·c++·gesp·gesp2026年3月·gespc++一级
Liu628885 小时前
C++中的工厂模式高级应用
开发语言·c++·算法
IT猿手6 小时前
基于控制障碍函数的多无人机编队动态避障控制方法研究,MATLAB代码
开发语言·matlab·无人机·openclaw·多无人机动态避障路径规划·无人机编队
AI科技星6 小时前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
sunwenjian8866 小时前
Java进阶——IO 流
java·开发语言·python
波特率1152006 小时前
const关键字与函数的重载
开发语言·c++·函数重载
FL16238631296 小时前
[C#][winform]segment-anything分割万物部署onnx模型一键抠图演示
开发语言·c#