0
我想迭代地定义一个变量,其名称是两个字符串的串联。通过连接字符串定义变量
特别是,下面的代码是为了创建一个变量Uvel_spring包含Uvel存储在文件spring_surface.mat中的值:
seasons{1}='spring';
seasons{2}='summer';
seasons{3}='autumn';
seasons{4}='winter';
for ii=1:4
['Uvel_',char(seasons(ii))] = load([char(seasons(ii)),'_surface.mat'],...
'Uvel');
end
不过,我得到以下错误:
An array for multiple LHS assignment cannot contain LEX_TS_STRING.
我解决它通过使用evalc
:
for ii=1:4
evalc(sprintf(['Uvel_',char(seasons(ii)),'=','load(''',char(seasons(ii)),'_surface.mat'',',...
'''Uvel''',')']));
end
但是,这是可怕的,我想改善代码。
有人有其他解决方案吗?