MATLAB Answers

Omair
0

How to save/access an axes's properties using the handles structure?

Asked by Omair
on 25 May 2012
What is the syntax I can use to save an axes that I defined in a code file into the handles structure, and how can I access this handle from other code files?

  2 Comments

Try the FAQ: http://matlab.wikia.com/wiki/FAQ#How_can_I_share_data_between_callback_functions_in_my_GUI.28s.29.3F

Sign in to comment.

2 Answers

Answer by Stephen
on 25 May 2012
 Accepted Answer

I made a script which uses
set(gca,'property','value','property2','value2')
and changes the default plot to look nicer.
Now, if you mean to say you have a figure with an axes, and h is the axes handle defined by one code. I believe you could do two things to get h from another piece of code. One is to set h as an output in the original code:
function h = myhandlefunction
h = plot(1:5);
end
then it will be in the work space if you call another function:
function another_function
h=myhandlefunction;
set(h,'color','yellow')
end
As long as you don't close the figure or delete the object that the handle references, this should work. You can also use findobj:
h = findobj(gca,'color','b');
set(h,'color','yellow')
to search for specific handles with matching properties. I hope I answered your question, good luck :)

  1 Comment

Thank you very much for your answer. I'm rather new to MATLAB so I'm not very good with how functions interact with each other. I used the second method and it worked fine, however, what worked for me is:
h = findobj(0,'color','b'). I used the 0 handle, which is the current figure handle if I am not mistaken.
I have another inquiry that is closely related to my previous one, if you have the time I would be grateful.
According to my current understanding,If I use GUIDE to create a GUI, each component (i.e. axis, static text...etc) is given a handle by GUIDE that can be easily found. Now inside the m file generated by guide, I can call these handles using set() for example "set(handles.text2,'Color','b'). However if I create an axis inside this same code using for example axz=axes, the handle "axz" doesnt not seem to be saved into the handles structure and thus I cannot seem to call it to modify the axes, even from inside the m file created by GUIDE. How can I save this new handle into the handles structure?

Sign in to comment.


Answer by Stephen
on 25 May 2012

I used to know how to answer this better, and maybe a bit of reading will answer based on my advice. In each function of the GUI you must updates the structured variable that contains the handles or other information. a structured variable is something like s.handle and s.value, so you can pass the variable s throughout your GUI and it contains multiple things in it. Try searching youtube for a GUIDE tutorial, I think that's where I learned how to do it correctly. So, in that case, you'd have to include your handle axs into the overall gui handles structure to pass it along.

  0 Comments

Sign in to comment.