Returning a value from a function after click in figure

4 visualizzazioni (ultimi 30 giorni)
I would like to return a value from a function, based on the type of click that was used.
I have the following codes:
figure
i = 0;
plot(rand(5))
val = set(gca,'buttondownfcn',@mybttnfcn)
and
function value = mybttnfcn(h,~)
hf = get(h,'parent');
b = get(hf,'selectiontype');
if strcmpi(b,'normal')
value = 1;
disp(value)
elseif strcmpi(b,'alt')
value = -1;
disp(value)
else
value = 0;
disp(value)
end
I would want to capture the 'value' from the function, into a variable where the call happens. Thanks!

Risposta accettata

Walter Roberson
Walter Roberson il 18 Apr 2018
Callbacks cannot return values (except for position constraints functions). You need to get the value out a different way.
https://www.mathworks.com/help/matlab/creating_guis/share-data-among-callbacks.html
  2 Commenti
Markus Toivonen
Markus Toivonen il 18 Apr 2018
Would it be possible to do this in one function?
h = figure;
i = 0;
plot(rand(5))
b = get(h,'selectiontype');
if strcmpi(b,'normal')
value = 1;
elseif strcmpi(b,'alt')
value = -1;
else
value = 0;
end
Currently, it does not react to clicks. I guess due to the lack of "ButtonDownFcn"?
Walter Roberson
Walter Roberson il 18 Apr 2018
https://www.mathworks.com/help/matlab/ref/waitforbuttonpress.html

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by