2011-03-22 5 views
2

Matlab에서 현재 실행중인 스크립트를 저장하는 방법이 있습니까? 현재 스크립트를 변경했다면 저장된 버전은 유효 기간이 지났지 만 자동으로 스크립트 세트를 백업하는 스크립트가 있습니다.Matlab에서 현재 실행중인 스크립트 저장

아마도 자바를 호출 할 수 있습니까?

감사

+0

백업 스크립트 자체도 백업해야한다는 의미입니까? –

+0

예, 부분적으로는 전체 스크립트 세트를 백업하는 함수를 호출하는 많은 매개 변수를 설정하는 기본 스크립트가 있습니다. – mor22

+0

아직 100 % 이해하고 있는지 잘 모르겠습니다. 매개 변수를 매트 파일로 저장하거나 스크립트 자체를 m 개의 파일로 저장하여 백업합니까? 별도의 폴더/태그에 복사본을 저장하나요? 저장된 버전이 오래된 이유는 무엇입니까? 예가 도움이 될 것입니다. –

답변

3

다른 곳에서 Yair Altman의 사이트 (내 다른 대답의 링크 참조)는 a blog entry about editorservices으로, MATLAB R2009b에서 소개되었습니다.

editorservices.getActive().save 

원하는대로해야합니다.

+0

IsDirty 필드를보고 파일이 수정되었는지는 잘 알 수 있습니다. 감사! – mor22

0

좋아, 모두 여기 쓰기 나는 그의 EditorMacro.m ... 큰 물건으로보고 특히, Yair Altman에 의해 undocumentedmatlab.com에서 배운!

저는 Itamar Katz가 여러분을 정확하게 이해했으며 편집기에서 "셀 평가"또는 "평가 선택"을 사용하여 저장되지 않은 코드를 실행하고 있다고 가정합니다. 코드가 저장되지 않았다는 것을 코드에 알리고 현재 편집기에 표시된 버전을 다른 위치에 저장합니다.

나는 원래 위치로 직접 파일 저장 하는 방법을 발견하지 않은,하지만 적어도 나는 액세스 현재 텍스트에있는 방법을 발견했다. 그런 다음 fprintf를 사용하여 원하는 곳에 저장할 수 있습니다. Matlab 7.11 (R2010b)에서 이것을 테스트했습니다. 다른 버전이있는 경우 현재 활성화 된 편집기 창이 아닌 파일이 포함 된 경우 당신은 그래서 만약 조건 검사

if com.mathworks.mlservices.MLEditorServices.getEditorApplication.getActiveEditor.isDirty  
    thisdocument=com.mathworks.mlservices.MLEditorServices.getEditorApplication.getActiveEditor.getDocument; 
    thisdocument_text=char(thisdocument.getText(0,thisdocument.getLength)); 
    fid = fopen('backupfile.m','w'); 
    fprintf(fid, '%s', thisdocument_text); 
    fclose(fid); 
else 
    % saved file is unmodified in editor - no need to play tricks... 
    ... 
end 

matlab에 6에 대한 올바른 코드를 찾을 EditorMacro.m을 통해 발굴해야 할 것 저장된 ("dirty"); 그렇다면 변수의 thisdocument_text로 현재 버전의 코드를 검색하고이 문자열을 일부 파일에 저장해야합니다.

이 정보가 도움이됩니까?

+0

나는 더 좋은 방법이 있음에도 불구하고 더 좋은 것을 가지고 있음에도 불구하고이 답을 남기로 결정했다. MATLAB 내부를 엉망으로 만듭니다. 이것은 "문서화되지 않은"답변이며, 다른 하나는 단지 "반 문서화되지 않은"것으로 언급 된 것들을 사용하는 반면 ... –

관련 문제