我需要将多个数组保存到文本文件中,文件名与变量名相同。我使用以下行创建了所需变量的向量。
all_var={};
vars=whos;
for(i=1:size(vars,1))
if(~isempty(regexp(vars(i).name,'A[0-9]','match')))
all_var{end+1}=vars(i).name;
end
end
我现在正在努力寻找将所有这些变量保存到文件的方法。任何帮助将不胜感激。
谢谢
答案 0 :(得分:2)
我不确定我是否理解正确。是否要将每个变量保存在不同的文件中?假设你想要将所有变量保存在同一个文件中,比如说,矢量的第一个值作为文件名,你可以尝试类似的东西:
filename = sprintf('vector_starting_with%d.mat', vars(1).name);
save(filename)
如果您想要向量中的每个元素分隔文件,可以尝试:
all_var={};
vars=whos;
for(i=1:size(vars,1))
if(~isempty(regexp(vars(i).name,'A[0-9]','match')))
all_var{end+1}=vars(i).name;
varsave=sprintf('vector_%d.mat', vars(i).name)
save(varsave);
end
end
很抱歉它可能有一些错误,现在我没有MATLAB。不过,请尝试重温this documentation。
修改如果你试试这个,请告诉我:
all_var={};
vars=whos;
for(i=1:size(vars,1))
if(~isempty(regexp(vars(i).name,'A[0-9]','match')))
all_var{end+1}=vars(i).name;
filename = sprintf('%d.txt', vars(i).name);
file = fopen(filename,'w');
fprintf(file,vars(i).name);
fclose(file);
end
end