I would like to change the way that the Matlab display function works on my object. I would like to reorganize the properties (which I know I could do if I redefined them in a different order), but additionally add a few more properties and descriptive lines. I would like to keep the functionality that Matlab offers by converting of all my properties to strings, truncating where necessary or simply summarizing by class and size in other cases. Does this functionality exist?
Here's an example:
auth_header: [1x1 struct] signature_method: 'HMAC-SHA1'
The structure is conveniently display as [1x1 struct].
Thus a function like the following would be great:
text = getPropText(obj,'auth_header'); text => '[1x1 struct]'
I could reproduce this functionality but it would be nice if I could just get access to the underlying function. Thoughts?
No products are associated with this question.
It seems like avoiding eval for so long I've forgotten that the input needs to be a string! The evalc approach isn't the greatest but it does let me focus on the organization and layout instead of how to format the property value string. Here's the code (NOTE: the regexp might not be the best ...):
%I call the object I am processing other_obj in this example, change to suit the name of your variable ...
str = evalc('builtin(''disp'',other_obj'')'); I_START = strfind(str,sprintf('Properties:\n')); I_END = strfind(str,sprintf('<a href="matlab:methods')); props_and_text = regexp(str(I_START:I_END),'(?<prop_name>[^\s:]+):\s*(?<value>[^\n]+)','names');
Play games and win prizes!Learn more