Converting variables to structures, and vice versa
Jiro's pick this week is v2struct by Adi Navve.
I have a special liking for convenience/utility functions, because they make my life easier. For example, here's something that many users have probably learned to do early on:
plot(x, y, 'ro:')
Did you know that plot is a high-level, convenience function for a much more flexible, low-level function line?
line(x, y, 'Color', 'r', 'Marker', 'o', 'LineStyle', ':')
Adi's v2struct is a function that makes converting between structures and individual variables easier.
Variables to a Structure
Suppose you have a bunch of variables that you want to combine into a single structure:
aString = 'August 5, 2011'; aScalar = pi; aVector = rand(1, 5);
v2struct automatically uses the names of the variables as the field names:
s = v2struct(aString, aScalar, aVector)
s = aString: 'August 5, 2011' aScalar: 3.1416 aVector: [0.8407 0.2543 0.8143 0.2435 0.9293]
Structure to Variables
The function works the other way also. Suppose you have a structure like this:
s2 = struct('var1', 1, 'var2', [1 2 3], 'var3', 'hello')
s2 = var1: 1 var2: [1 2 3] var3: 'hello'
You can create variables from the fields of the structure:
v2struct(s2) whos var*
Name Size Bytes Class Attributes var1 1x1 8 double var2 1x3 24 double var3 1x5 10 char
In addition to these basic uses, v2struct provides advanced functionalities, such as
- creating structures with field names different from variable names
- updating fields of an existing structure
- extracting only specific fields of a structure
- extracting fields with a different variable name
What I also like about Adi's function is that there is a very extensive help section with lots of examples. I can see he has put in a lot of effort in making this easy to use.
Let us know what you think here or leave a comment for Adi.
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.