How to create variables from variable names stored in a array?
13 views (last 30 days)
Show older comments
attributes={'time', 'step', 'cuurent', 'voltage', 'chgAh', 'disAh'};
I have stored variable names in this array and i want to store data in them when using in loop. For eg.
if i call out attributes(2)== {some values} then i want this to create a variable named 'step' and load the given data in it. How can i do it?
1 Comment
Walter Roberson
on 5 Jun 2023
Please read http://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval for information about why we strongly recommend against creating variable names dynamically.
Accepted Answer
kei hin
on 5 Jun 2023
attributes={'time', 'step', 'cuurent', 'voltage', 'chgAh', 'disAh'};
prompt = 'input what you want: ';
input_str = input(prompt,'s');
exp_idx = '([0-9]*)';
[~,idx_str] = regexp(input_str,exp_idx,'tokens','match');
posi_start = strfind(input_str,'==');
value_str = input_str(posi_start+2:end);
idx = str2num(idx_str{1,1});
var_name = attributes{1,idx};
if isempty(str2num(value_str))
value = value_str;
else
value = str2num(value_str);
end
assignin('base',var_name,value);
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!