如何从MATLAB中的内联函数返回值?
问题描述:
我有以下脚本:如何从MATLAB中的内联函数返回值?
im = imagesc(anImage, 'parent', gca);
set(im,'HitTest','off');
set(gca,'buttondownfcn', @someFunction)
我的问题是,我想someFunction
返回一些值,但我不知道怎么做,在这种特殊情况。这似乎是内联不让我这样做...
谢谢。
答
要使someFunction()
在您的基本工作区中设置一个值(我假定您想要实现的),可以使用assignin()
函数。
为someFunction()
一个例子,用于设置可变axes_position
到当前坐标位置被以下
function someFunction(hObject, event)
assignin('base', 'axes_position', get(hObject, 'Position'));
看看如何处理与MATLAB用户指南中的轴和图属性页面轴和图形控件中的用户UI输入(没有足够的信誉来添加两个链接)。
但是,你提到你想在程序的下一行中操纵它。如果我理解正确,这就是guidata
函数的意思:“存储或检索UI数据”。
+0
谢谢。我后来想到了,但你的答案很好地包含了这个过程。再次感谢! :) – TheGrapeBeyond
返回*其中*? – excaza
@excaza基本上,我只是想让它返回到我的工作区...,以便我可以在程序的下一行中操作它。 – TheGrapeBeyond
在您编写的'@ someFunction'代码中,您提供了一个函数句柄作为函数'set'的输入。要将它用作工作空间中的一个函数,你可以明确地将它分配给变量'>> myHdlFunction = @ someFunction',然后用它作为>> >> myHdlFunction(input1,input2)'(显然,替换'input1'和'输入2'由适当的输入)。函数句柄在MATLAB [文档]中描述(http://uk.mathworks.com/help/matlab/matlab_prog/creating-a-function-handle.html)。 – user1391279