2010-11-18 3 views
1

다음 상황이 발생했을 수 있습니다. 당신은 일을하고 다음 스크립트를 하나씩 실행하기 시작합니다. 그리고 나서 당신이 관심있는 변수의 값을 변경했다는 것을 갑자기 깨닫게됩니다. 작업 공간의 백업을 만드는 것 외에도 변수를 보호 할 다른 방법이 있습니까?작업 영역 변수 보안

보호 할 작업 영역에서 개별 변수를 선택하는 방법이 있습니까?

명령 기록 레지스터를 보는 것 외에도 하나의 특정 변수에 다른 값의 기록 레지스터가 있습니까?

답변

9

순차적으로 스크립트를 실행하는 것은 재앙의 방법입니다. 가능한 경우 해당 스크립트를 기능으로 전환하십시오. 함수 내의 변수는 해당 함수의 로컬 변수이므로 스크립트의 변수는 작업 공간의 로컬 변수이므로 별도의 스크립트로 쉽게 액세스/덮어 쓰기가 가능합니다 (특히 의도하지 않은 경우가 종종 있습니다). "result"와 같은 변수 이름을 사용하는 경우).

+1

+1. 확실히 스크립트보다는 함수를 작성하는 법을 배우십시오. 이렇게하면 코드를보다 유연하고 미래에 유용하게 사용할 수 있습니다. –

+2

+1. 기술 nitpick : 스크립트의 변수도 지역 변수입니다. 그것들은 Matlab 세션의 지속 기간 동안 지속되며 모든 스크립트가 실행되는 "기본"작업 공간에 국한됩니다. 글로벌 변수는 "global"키워드로 선언되며 선언 된 모든 작업 공간에서 액세스 할 수 있습니다. –

+0

그래서 당신은 Matlab의 훌륭한 프로그래머가 그가하는 모든 기능이 기능을 통해 이루어 졌다고 말하고 있습니까? 내가 뭔가를하고 싶을 때마다 나는 지루하고 유연하지는 않는 함수를 만들어야 만한다. – Peterstone

0

아니요, 작업 공간 기록이 없습니다. 내가 말했듯이, 당신이 기술 한 문제에 부딪치게되면 프로그래밍 스타일을 바꾸는 것을 고려해야한다.

내가 당신을 제안 : 당신이 작업을 수행하기 위해 빈 작업 공간에서 시작할 수

  1. 는 스크립트에서 많은 코드 또는 정보 것을 넣어. 그런 이유로 저는 항상 clear all을 제 주 파일의 시작 부분에 넣었습니다.

  2. 너무 복잡해지면 함수 호출을 고려하십시오. 다른 스크립트 또는 함수에 의해 생성 된 값이 필요하면 해당 스크립트를 다시 작성하여 함수가되고 기본 파일에서 호출하거나 변수를 저장하십시오. 변수를로드하는 것은 절대적으로 좋습니다. 그러나 순차적으로 스크립트를 실행하면 mentioned by marciovm과 같은 재난이 발생합니다.

0

또한이 기능에서는 필기체 기능이 도움이 될 수 있음에 동의합니다. 그러나 매우 큰 데이터 세트를 조작하는 경우 함수 내에 여러 변수 사본을 만들지 않는 형식으로 코드를 작성하거나 메모리 부족 문제가 발생할 수 있으므로주의해야합니다.