How to create variables from variable names stored in a array?
13 次查看(过去 30 天)
显示 更早的评论
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 个评论
Walter Roberson
2023-6-5
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.
采纳的回答
kei hin
2023-6-5
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);
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!