MATLAB: How to define a structure fieldname from a cell contains a string value

cell arraystringstructure

Dear All:
I am having trouble to define structure fieldnames from a cell array that contains the names as string values:
select = [{'NAME'}, {'VALUE'};
{'alpha'}, 0.4;
{'sigmaL'}, 1;
{'beta'}, 0.98];
and in a loop I want to create a structure from the cell array (select) with field name as in the first column and value in the second column if certain criteria is met. I have tried setfield and struct command, but in all cases the 'fieldname' input does not like I reference to the cell array (eg: select(1,3)), and ask for a proper string within quotation marks.
I want to ask how to create a structure by referencing to cell arrays? (In my case is create something like structure.alpha = 0.4 by referencing to select?)
Thank you very much in advance for your help.
Cheers
Ben

Best Answer

Instead of using EVAL, use dynamic fieldnames....
select = [{'NAME'}, {'VALUE'};
{'alpha'}, 0.4;
{'sigmaL'}, 1;
{'beta'}, 0.98];
for ii = 1:size(select,1)
S.(select{ii,1}) = select{ii,2};
end
Now you have a structure S. You might get a warning because the fieldname alpha is the same as the MATLAB function ALPHA. Note that using CELL2STRUCT is preferred here, as Oleg shows...