我有以下腳本:如何從MATLAB中的內聯函數返回值?
im = imagesc(anImage, 'parent', gca);
set(im,'HitTest','off');
set(gca,'buttondownfcn', @someFunction)
我的問題是,我想someFunction
返回一些值,但我不知道怎麼做,在這種特殊情況。這似乎是內聯不讓我這樣做...
謝謝。
我有以下腳本:如何從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數據」。
謝謝。我後來想到了,但你的答案很好地包含了這個過程。再次感謝! :) – 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