2016-08-22 2 views
1

Matlab 버전간에 전환 중입니다. 그러나 나는 새 버전으로 이동해야 할 커스텀 경로 목록을 가지고있다.Matlab 경로에 영구적으로 경로 목록을 프로그래밍 방식으로 추가하십시오.

어떻게 할 수 있습니까?

for i = 1:numPaths 
    path(path,myPathList{i}) 
end 

은 일시적으로 경로를 추가하고 명령처럼 보인다. 또한 addpath은 하나의 matlab 세션에 대해서만 시간 변경을하고 있습니다.

답변

4

savepath을 사용하면 pathdef.m 파일 경로를 MATLAB 세션간에 유지할 수 있습니다. 어디이 pathdef.m 파일이 사는 것은 현재 구성에 따라 달라집니다 :

savepath 현재 폴더의 기존 pathdef.m 파일에 현재 MATLAB® 검색 경로를 저장합니다. 현재 폴더에 pathdef.m 파일이 없으면 savepath은 검색 경로를 현재 경로의 첫 번째 pathdef.m 파일에 저장합니다. 현재 경로에 해당 파일이없는 경우 savepath은 시작시 MATLAB에있는 pathdef.m 파일에 검색 경로를 저장합니다. UAC (사용자 계정 컨트롤)가 활성화 된 Windows® 시스템에서 관리자 수준의 권한이 필요하므로 업데이트 작업을 허용할지 묻는 메시지가 나타날 수 있습니다.

% Add all paths in myPathList to the path 
addpath(myPathList{:}) 

% Save it so that they are already added in new instances 
savepath 

업데이트는 사용자의 경로에 pathdef.m 파일을 위치

savepath; 그러나 변경된 경로가 pathdef.m 파일에 저장되었지만 응용 프로그램이 시작될 때 해당 파일이 읽히지 않았으므로 MATLAB의 시작 디렉토리는 해당 위치가 아닙니다. 해결 방법은이 "로컬"pathdef.m을 제거하여 설치 디렉토리 내의 파일을 대신 사용하는 것입니다.

+0

이 불행하게도 작동하지 않을 수 있습니다. sudo 권한을 가진 Matlab을 시작하더라도. – mcExchange

+0

@mcExchange 그것은 작동하지 않습니다. – Suever

+0

변경 사항은 영구적이지 않습니다. 그러나 gui를 사용하여 폴더 경로를 추가해도 영구적 인 것이 아니기 때문에 정말 이상합니다. 어쩌면 그것은 Matlab 2014a의 버그 일 것입니다 ... – mcExchange

1

행운을 빕니다. 사람들이 MATLAB의 판별을 바꾸지 않고 저장 경로를 바꾸는 작업에서 정확한 문제를 처리해야만하는 경우도 있습니다. 내 startup.m에있는 작은 함수를 작성하여 모든 사용자 정의 경로가 사용중인 MATLAB의 특정 버전에 대한 기본 경로 위에 추가되는지 확인합니다. MATLAB이 C : \ Program Files에 있다고 가정하고 있으므로 필요에 따라 변경할 수 있습니다. 당신의 startup.m에서

function setPathForNewVersion() 
% Find all path strings which do not belong to toolbox folders 
customFolders = regexp(strsplit(path,';'),... 
    '^(?!C:\\Program Files(\s\(x86\))?\\MATLAB\\R\d{4}(?:a|b)\\toolbox\\\S*)(.*)','match'); 
customFolderCells = [customFolders{cellfun(@(x)~isempty(x),customFolders)}]; % Remove empty cells 

restoredefaultpath; % Momentarily 
newPath = sprintf('%s;',customFolderCells{:}); 
path(newPath, path); % Add the user's custom path to the top 
savepath; 
end 

는 당신은

function startup 
setPathForNewVersion(); 
end 
+0

그래서이 함수는 Matlab이 시작될 때마다 호출됩니까? 즉, 일부 기본 Matlab 경로에'setPathForNewVersion' 함수를 추가해야합니다. 난 정말 왜 사람이 단순히 모든 시작에 그들을 호출하는 대신 영구적으로 이러한 항목을 저장할 수 없습니다 ... 놀랍군요 아마 Matlab 2014a 버그 ... – mcExchange

+0

당신이 버전 사이를 전환하지 않는 경우 이것은 한 시간 전환 다음 'savepath'를 사용하는 것이 좋지만 한 버전에서 다른 버전으로 자주가는 경우 시작할 때마다이 작업을하는 것이 더 좋습니다. 그리고'startup.m'에'setPathForNewVersion'을 하위 함수로 추가 할 수 있습니다. –

관련 문제