在Matlab中将多个数组保存到文本文件中

时间:2013-11-20 19:17:00

标签: matlab save

我需要将多个数组保存到文本文件中,文件名与变量名相同。我使用以下行创建了所需变量的向量。

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

我现在正在努力寻找将所有这些变量保存到文件的方法。任何帮助将不胜感激。

谢谢

1 个答案:

答案 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