MATLAB里想从图上手动取点坐标,ginput函数是最直接的办法。2026年了,这个函数的用法跟十年前基本没变,但很多人只会最基础的那种调用,另外两种变体根本不知道。这篇把ginput的3种用法全部拆开,配上实际代码,看完直接能用。
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种,适用场景完全不同。
第一种:[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年做交互式数据分析的时候,这个功能比以前用得更多了。

别觉得这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 等。