从Octave中的命令窗口以外的位置获取输入

时间:2017-12-07 14:36:14

标签: octave

我是Octave的初学者。我需要制作一个关于矢量的程序,我需要用户输入来绘制矢量。我可以从命令窗口获取输入,但我需要它像图窗口,我希望它弹出。有办法吗?

1 个答案:

答案 0 :(得分:0)

使用inputdlg()

您可以使用inputdlg()功能轻松创建字符串和数字数据的图形输入接口。这是一个简单的例子:

myinp = inputdlg({'width','height'},'Please input data!',1,{2.5,320.9})

这将创建以下对话框:

Dialog created with inputdlg()

按OK后会返回以下结果(取决于您的输入):

myinp =
{
  [1,1] = 2.5
  [2,1] = 320.9
}

使用addlistener()

上述解决方案会创建一个弹出输入对话框,可能不是您要查找的内容。要根据鼠标坐标获取输入,您可以使用addlistener()函数从当前轴的axes对象的currentpoint属性中获取当前选定的点坐标。

% Create a new axis system in current window
ax = axes();
% Define a listener function that does something with the selected points
listener = @(ah) display(get(ah,'currentpoint'));
% Add Listener to current axis property
addlistener(ax,'currentpoint',listener);

每当您单击轴系统时,您将在控制台输出上看到当前坐标。当然,这不是你要求的完整解决方案,还有一些功课要做。

使用ginput()

使用ginput()函数,您可以收集一个或多个鼠标点击位置以及单击鼠标按钮的数量。