How to create variables from variable names stored in a array?
조회 수: 15 (최근 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!