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

Asked by Omair on 25 May 2012
Latest activity Answered by Stephen 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

Image Analyst on 25 May 2012

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

Omair on 25 May 2012

Thank you.

Omair

Products

No products are associated with this question.

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

Omair on 25 May 2012

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?

Stephen
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

Stephen

Contact us