Pass a value from callback function in GUI to an element of vector in Workspace !
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi. I have written a GUI without GUIDE. it first reads an image and some point from the main script and I want it to assign a value to each point.
in my gui, I iteratively ask the user to push two buttons based on the picture he sees. Pushing the button, I want a value (1 or 2) to be stored in my main (not GUI) workspace in the "label" vector.
I first tried to store all the values in one vector in GUI ("labelVector") workspace and then pass it to the base workspace: (for some reasons I had to define the i as a global variable)
function falsePositive_Callback(hobject, ~, labelVector)
global i
labelVector(i)=1;
i=i+1;
end
the problem is that with this code everything is good before the end of the function. when the callback function ends, the value comes back to 0.
In the second attemps, in the callback function I used the function:
evalin('base','label(i)=1');
to instantly pass the variable that I want to the label vector in the 'base' workspace.
At this time, the problem is that only the first value changes to 1 and no matter how many iterations I push the button, only the first values changes.
can anyone address me through my problem? Thanks.
3 Kommentare
Robert
am 17 Mai 2016
I'm not able to test this right now, but you might try
evalin('base','label(end+1)=1');
This should always append the value to the end of the list and doesn't require your global indexing variable.
Antworten (0)
Siehe auch
Kategorien
Mehr zu Migrate GUIDE Apps finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!