你不actually想做这个。Even the http://www.mathworks.com/help/matlab/matlab_prog/string-evaluation.html#bs7kmd5数学工作坊会告诉 http://blogs.mathworks.com/loren/2006/01/04/more-in-eval/ you 不要这样做 http://www.mathworks.com/help/matlab/ref/eval.html?searchHighlight=eval#moreabout。如果您尝试使用变量名称来跟踪像这样的相关数据,那么有always更好的数据结构来保存您的数据。
一种方法是使用元胞数组
data = cell(size(input(:,1)));
for n = 1:size(input,1)
data{n} = csvread(strcat(input{n,1},'k.csv'),input{n,2},0);
end
另一个不错的选择是使用struct
。你可以有一个struct
具有与您的数据相对应的动态字段名称。
data = struct();
for n = 1:size(input,1)
data.(input{n,1}) = csvread(strcat(input{n,1},'k.csv'),input{n,2},0);
end
或者实际上创建一个结构数组并保存名称and结构中的数据。
for n = 1:size(input, 1)
data(n).name = input{n,1};
data(n).data = csvread(strcat(input{n,1},'k.csv'),input{n,2},0);
end
如果你绝对坚持这样做(再次强调,这非常重要)not推荐),那么你可以使用eval http://www.mathworks.com/help/matlab/ref/eval.html:
for n = 1:size(input, 1)
data = csvread(strcat(input{n,1},'k.csv'),input{n,2},0);
eval([input{n, 1}, '= data;']);
end