可能重复: How to concatenate a number to a variable name in MATLAB? MATLAB: How can I use a variables value in another variables name?
我有以下代码:
x = textread('/home/data/data.txt','%s')
for i=1:50
S=load(['/home/data/',x{i},'_file.mat'])
info_',x{i},' = strcat(S.info1, S.info2)
end
当然,最后一行(info_',x{i},' = strcat(S.info1, S.info2)
)不起作用。它似乎不可能使用变量来创建MATLAB元素。这是对的还是我在这里做错了什么?有优雅的解决方法吗?
答案 0 :(得分:1)
你想要像
这样的东西eval( sprintf( 'info_%s = strcat( S.info1, S.info2 );', x{i} ) );
如果是这样,我可以阻止你这样做,请参阅:http://matlab.wikia.com/wiki/FAQ#How_can_I_create_variables_A1.2C_A2.2C....2CA10_in_a_loop.3F
答案 1 :(得分:0)
尝试以下方法:
eval(['info_x{' num2str(i) '}=strcat(S.info1, S.info2)']);