2016-05-13 13 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 [documentation](http://uk.mathworks.com/help/matlab/matlab_prog/creating-a-function-handle.html)を参照してください。 – user1391279

答えて

1

someFunction()をベースワークスペースの値に設定するには(達成したいと思う)、assignin()関数を使用できます。現在のAxesの位置に変数axes_positionを設定しsomeFunction()ため

たとえば、次の

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

は対処する方法については、MATLABのユーザーガイドの軸とフィギュアプロパティページを見てくださいされますAxesとFigureコントロールのユーザUI入力(2つ以上のリンクを追加するには評判が足りません)。

ただし、には、プログラムの次の行で操作します。私が正しく理解していれば、guidataの機能は、"UIデータの保存または取得"のためのものです。

+0

ありがとうございます。私は後でそれを理解していましたが、あなたの答えはうまくプロセスをカプセル化しています。再度、感謝します! :) – TheGrapeBeyond

関連する問題