2013-11-20 195 views
1

我需要將多個數組保存到文本文件,其文件名與變量名相同。我已經創建了一個包含所有需要的變量的向量。在Matlab中將多個數組保存到文本文件中

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

要所有的數組保存到一個文本文件? – MZimmerman6

回答

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 
+0

謝謝你的回覆。但是我不認爲我已經很清楚地說明了我的問題。我想要做的是將所有以「A」開頭的變量保存爲單獨的文本文件。文本文件的名稱需要與變量名稱相同。謝謝 – user3014621

+0

是的,很有用,謝謝你的幫助 – user3014621

相關問題