How to generate variable names from a cell array
69 views (last 30 days)
Show older comments
Hello, all. This is an instance where plenty of documentation exists, yet I am still having trouble interpreting it for my purposes.
If I have an cell array of the following form:
CellArray = {
'variable1' 'hello';
'variable2' 'world';
'variable3' 3.14159;
'variable4' [42 24]
};
How does one generate variables in the MATLAB workspace, so that:
variable1 = 'hello'
variable2 = 'world'
variable3 = 3.14159
variable4 = [42 24]
The second column of the cell array might be other types of variables as well (i.e. CellArray{1,2} might be numerical instead of a string, depending on my usage task).
Also note that the older genvarname() function will be removed in upcoming releases of Matlab, and the documentation says to use MATLAB.LANG.MAKEVALIDNAME and MATLAB.LANG.MAKEUNIQUESTRINGS instead.
If you anyone could propose a snippet of code that would be able to do this for me, it would be greatly appreciated. Thanks!
1 Comment
Stephen23
on 6 Sep 2016
Edited: Stephen23
on 6 Sep 2016
Just use a structure: this would be much simpler and more reliable than any hack code you could write that creates those variables names dynamically.
>> C = {
'variable1' 'hello';
'variable2' 'world';
'variable3' 3.14159;
'variable4' [42 24]
};
>> Ct = C';
>> S = struct(Ct{:});
>> S.variable1
ans = hello
>> S.variable4
ans =
42 24
More Answers (1)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!