2016-09-21 2 views
0

입니다 특정 개체를 저장해 내가 가진 :로드와 파일 이름이 문자열

save X a b c 
: 
load X a b 

내가 좋아하는 것 :

TEMP_FOLDER = 'tmp' 
save TEMP_FOLDER/X a b c   % syntax fail 
: 
load TEMP_FOLDER/X a b 

은 같은데 내가 부하의 기능 버전이 필요한 것처럼/저장합니다.

하지만 도움이 필요한 변수를 추출하는 방법을 이해할 수 없습니다.

내가 볼 수있는 최선은 다음과 같습니다 정말

stuff = {'a', 'b'}; 
S = load([TEMP_FOLDER 'X'], stuff{:}); 
a = S['a']; 
b = S['b']; 
clear stuff S 

? 왝!

load([TEMP_FOLDER 'X']); 

을하지만 그때 나는 다른 사람을 따라하는 코드가 어렵게 변수가로드 된 대한 정보를 잃게 :

어쩌면 내가 할 수 있었다.

파일 구조를 정리하는 것이 코드 가독성 인 것처럼 보입니다.

하지만 내 케이크를 먹을 수 있습니까?

아마 수 :

cd(TEMP_FOLDER); 
load X a b 
cd('..'); 

...이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

1

문제가 무엇인지 확실하지 않지만 저장하려는 변수 이름을 알고있는 경우 파일 경로 (fullfile으로 생성 됨)와 함께 저장하도록 저장할 수 있습니다.

save(fullfile(TEMP_FOLDER, 'X.mat'), 'a', 'b', 'c') 

로드 할 때로드 할 변수를 동일하게 명시 적으로 전달할 수 있습니다. 또한이 변수 이 파일에이 아닌 경우 오류가 발생하는 추가 이점이 있습니다.

to_save = {'a', 'b', 'c'}; 
to_load = {'a', 'b'}; 

save(fullfile(TEMP_FOLDER, 'X.mat'), to_save{:}) 

load(fullfile(TEMP_FOLDER, 'X.mat'), to_load{:}) 

난 그 정말 코드가 줄어들지 않습니다 말할 것이다 : 당신은 당신이 쉽게와 함께 그렇게 할 수있는 셀 어레이에서 변수 이름을 저장하려는 경우, 지적했듯이

% Load ONLY the variables: a, b 
load(fullfile(TEMP_FOLDER, 'X.mat'), 'a', 'b'); 

가독성.

+0

감사합니다. 나는 놓친 간단한 방법이 있는지 확인하기 만하면됩니다. 그리고 당신이 그것을 발견했습니다! –