2016-05-13 104 views
0

我有以下脚本:如何从MATLAB中的内联函数返回值?

im = imagesc(anImage, 'parent', gca); 
set(im,'HitTest','off'); 
set(gca,'buttondownfcn', @someFunction) 

我的问题是,我想someFunction返回一些值,但我不知道怎么做,在这种特殊情况。这似乎是内联不让我这样做...

谢谢。

+0

返回*其中*? – excaza

+0

@excaza基本上,我只是想让它返回到我的工作区...,以便我可以在程序的下一行中操作它。 – TheGrapeBeyond

+0

在您编写的'@ someFunction'代码中,您提供了一个函数句柄作为函数'set'的输入。要将它用作工作空间中的一个函数,你可以明确地将它分配给变量'>> myHdlFunction = @ someFunction',然后用它作为>> >> myHdlFunction(input1,input2)'(显然,替换'input1'和'输入2'由适当的输入)。函数句柄在MATLAB [文档]中描述(http://uk.mathworks.com/help/matlab/matlab_prog/creating-a-function-handle.html)。 – user1391279

回答

1

要使someFunction()在您的基本工作区中设置一个值(我假定您想要实现的),可以使用assignin()函数。

someFunction()一个例子,用于设置可变axes_position到当前坐标位置被以下

function someFunction(hObject, event) 
assignin('base', 'axes_position', get(hObject, 'Position')); 

看看如何处理与MATLAB用户指南中的轴和图属性页面轴和图形控件中的用户UI输入(没有足够的信誉来添加两个链接)。

但是,你提到你想在程序的下一行中操纵它。如果我理解正确,这就是guidata函数的意思:“存储或检索UI数据”

+0

谢谢。我后来想到了,但你的答案很好地包含了这个过程。再次感谢! :) – TheGrapeBeyond