2012-06-27 39 views
2

我想在進程循環結束時將多個變量加載到一個.mat文件中。我有一個簡單的代碼行:Matlab將文件保存爲其他變量中定義的名稱

save draw.mat Output 

,但我不能工作了一種方法,代碼「使用由變量X的名稱是」而不是「輸出」,這樣我可以循環的過程,並保存多個變量在draw.mat

所以後來

X = 'Chocolate' 

和變量名保存爲巧克力。

我相信這很簡單,但我在這裏找不到解決方案!

回答

2

您可以使用save命令的-struct形式。您可以在生成的.mat文件中使用包含變量名稱的字段來構建結構。

例子:

s = struct(); 
s.VariableOne = 1; 
s.VariableTwo = 2; 
save draw.mat -struct s; 

文件draw.mat現在將舉辦兩場1x1的雙變量與名稱 「VariableOne」 和 「VariableTwo」。

您也可以建立一個命令的結構:

s = struct('VariableOne', {1}, 'VariableTwo', {2}); 

或者你可以使用cell2struct功能:

data = {1,2}; 
names = {'VariableOne', 'VariableTwo'}; 
s = cell2struct(data(:), names(:), 1); 
4

您需要SAVE的功能形式。換句話說,SAVE可以這樣調用:

save('draw.mat', 'Output1', 'Output2'); 

所以,如果你的變量名保存在單獨的變量中,你可以做

v1 = 'Output1'; 
v2 = 'Output2'; 
save('draw.mat', v1, v2); 

甚至

v = {'Output1', 'Output2'}; 
save('draw.mat', v{:}); 

SAVE reference page有完整的細節。

+0

還有:S ='draw.mat';保存(S,v1,v2) – Dan

0

A = [2 5 8; 25 2 4; 4 1 7]; 
save('A.mat') 

現在要保存它與其他名稱說B

B = A; 
save('B.mat') 
相關問題