2012-06-27 4 views
2

프로세스 루프가 끝날 때 하나의 .mat 파일에 여러 변수를로드하려고합니다. 나는 코드의 간단한 라인이 있습니다다른 변수 내에서 정의 된 이름으로 파일을 저장하는 Matlab

save draw.mat Output 

을하지만, 대신에 '출력'의 '변수 X에 의해 주어진 이름을 사용'코딩하는 방법을 작동하지 않을 수 있습니다 내가 루프 과정을 할 수 있고 여러 변수를 저장할 수 있도록

draw.mat

에 그럼

X = 'Chocolate' 

과 변수 이름은 초콜릿으로 저장됩니다.

나는 간단하다고 확신하지만 여기서 해결책을 찾을 수 없습니다!

답변

2

-struct 형태의 save 명령을 사용할 수 있습니다. 결과 .mat 파일의 변수 이름을 가진 필드가있는 구조체를 빌드합니다.

예 :

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

파일 draw.mat 지금 이름 "VariableOne"와 "VariableTwo"두 × 1 더블 변수를 개최한다.

또한 하나의 명령에 구조체 구축 할 수 있습니다 :

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'; save (S, v1, v2) – Dan

0

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

지금 저장할하자를 다른 이름으로 그것을 말하십시오 B

B = A; 
save('B.mat') 
관련 문제