动态变量声明

Cro*_*ley 0 variables matlab declaration

假设我们已将数据加载到单元格数组中:

DATA={'foo',[1,5];'bar',[2,6]}
Run Code Online (Sandbox Code Playgroud)

有没有办法如何用第DATA2列的内容声明第1列命名的变量?

Sha*_*hai 5

你可以使用 eval

for ii = 1:size(DATA,1)
    eval( [DATA{ii,1}, ' = ', num2str( DATA{ii,2} )] );
end
Run Code Online (Sandbox Code Playgroud)

然而,使用的eval不推荐.

可以使用动态字段名称:

s = cell2struct( DATA(:,2), DATA(:,1), 2 );
Run Code Online (Sandbox Code Playgroud)