MATLAB Answers


Question about extracting a structure field using eval

Asked by Ano
on 16 Nov 2017
Latest activity Edited by Stephen Cobeldick on 16 Nov 2017
hi! I am extracting the fields of a structure using the following code
names = fieldnames(BD);
for ii = 1: length(names)
eval([names{ii} '=BD.' names{ii}]);
and it works but I get all the extracted arrays and data shown in the commend window also, any suggestion how to avoid this ?! thank you!


1 Answer

Answer by Stephen Cobeldick on 16 Nov 2017
Edited by Stephen Cobeldick on 16 Nov 2017
 Accepted Answer

Do NOT use eval for such trivial code. This way of accessing structure fields has been obsolete for more than ten years, as you will learn when you read the MATLAB blogs.
Use dynamic fieldnames instead:
names = fieldnames(BD);
for ii = 1:numel(names)
names{ii} = BD.(names{ii});
Or learn how to use MATLAB efficiently and use struct2cell:
out = struct2cell(BD);


Sign in to comment.