许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MATLAB ginput函数怎么用?3种用法一次讲清

MATLAB ginput函数怎么用?3种用法一次讲清

阅读数 3458
点赞 0
article_banner

MATLAB里想从图上手动取点坐标,ginput函数是最直接的办法。2026年了,这个函数的用法跟十年前基本没变,但很多人只会最基础的那种调用,另外两种变体根本不知道。这篇把ginput的3种用法全部拆开,配上实际代码,看完直接能用。

MATLAB ginput函数:从图形上取坐标就靠它

ginput干的事很简单——你在图上点鼠标,它把你点的位置的x、y坐标记录下来,返回给你。

听起来没什么技术含量对吧?但实际做数据分析的时候,这个函数能帮你省掉一个大麻烦。比如你画了一条曲线,想知道曲线上某个峰值对应的横坐标是多少,用ginput点一下就出来了,不用肉眼估算,不用手动读刻度。

最基础的调用方式:[x, y] = ginput(n)。n是你要点的点数,比如n=10,你就在图上点10下,函数返回两个长度为10的向量x和y,分别是你点的10个点的横坐标和纵坐标。

跑一遍实际代码:

matlab>> figure
>> [x,y] = ginput(10)
x = 0.1924  0.3076  0.0634  0.0634  0.7431  0.8168  0.6486  0.3560  0.2730  0.1878
y = 0.4079  0.5629  0.8699  0.8699  0.5541  0.2266  0.1213  0.3026  0.4898  0.7383

10个点的坐标全出来了,精确到小数点后4位。你拿这些坐标去做后续计算,完全够用。

ginput函数的3种调用方式:差别在哪

ginput不是只有一种写法,实际上有3种,适用场景完全不同。

第一种:[x, y] = ginput(n)

指定点数。你说要10个点,它就等你点满10个才返回。适合你知道自己需要多少个点的场景,比如做曲线拟合需要5个控制点,直接写ginput(5)。

但有个细节:如果你点到第7个的时候不想点了,按回车键就能提前终止,不用非得点满10个。这个设计挺人性化的。

第二种:[x, y] = ginput

不指定点数,想点几个点几个,按回车键结束。这种写法最灵活,适合你自己也不确定需要几个点的时候。

matlab>> figure
>> [x,y] = ginput

点完按回车,x和y自动返回。我平时用这种方式最多,因为大部分时候我自己也不知道要取几个点,边看图边点,看到哪个点有用就点哪个。

第三种:[x, y, button] = ginput(n)

这个是进阶用法,多返回一个button向量。button记录的是你每个点用的是鼠标哪个键,以及按键的ASCII码值。

matlab>> figure
>> [x,y,button] = ginput(10)
x = 0.4636  0.0884  0.2576  0.2670  0.3710  0.4173  0.6063  0.6101
y = 0.2915  0.5689  0.5349  0.5104  0.5972  0.6745  0.6500  0.4972
button = 1  97  115  99  28  31  30  29

button里的1代表左键,2代表中键,3代表右键。97、115、99这些是ASCII码,对应键盘上的a、s、c键。这个信息有什么用?如果你写的程序需要区分用户是用鼠标点的还是用键盘触发的,button向量就派上用场了。2026年做交互式数据分析的时候,这个功能比以前用得更多了。

MATLAB ginput函数实战:什么场景该用哪种写法

别觉得这3种写法差不多,选错了真的会翻车。

场景1:你需要精确取5个点做多项式拟合。用[x, y] = ginput(5),点数固定,代码可控。

场景2:你在探索数据,不知道要取几个点,边看边点。用[x, y] = ginput,按回车结束,最省事。

场景3:你在写一个交互式程序,需要知道用户用的是左键还是右键。用[x, y, button] = ginput(n),button向量直接告诉你按键信息。

还有一个容易被忽略的点:ginput只能在当前坐标图(figure)上取点。如果你开了多个figure窗口,ginput默认在最后激活的那个窗口上工作。想指定窗口的话,先用figure(1)把窗口1激活,再调用ginput,就不会取错窗口了。

我之前处理一个项目,需要从12张子图里分别取峰值坐标。一开始没切换窗口,结果12个点全取到最后一张图上了,白干了一下午。后来加了一句figure(i)切换到第i个窗口,问题就解决了。这种细节教程里不会提,但实际干活的时候天天遇到。


MATLAB ginput函数就这3种用法,没什么复杂的。固定点数用第一种,不定点数用第二种,需要按键信息用第三种。2026年了,这个函数依然是MATLAB里取坐标最快的方式,比手动读刻度、比data cursor都直接。上面的代码直接复制到命令窗口就能跑,点几下鼠标,坐标就到手了。别光收藏,打开MATLAB试一遍,30秒就能学会。

武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空