Pass a value from callback function in GUI to an element of vector in Workspace !
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
Robert
2016-5-17
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.
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Migrate GUIDE Apps 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!