我想添加一個新的函數到我的Matlab,所以我可以從任何地方永久使用它。我將新路徑添加到我放置此新函數.m文件的文件夾中。當我從其他地方調用此函數時,當前位置將移至具有此功能的文件夾。我怎樣才能使用該功能,但留在當前文件夾?將一個新的函數.m文件添加到MATLAB永久
謝謝。
我想添加一個新的函數到我的Matlab,所以我可以從任何地方永久使用它。我將新路徑添加到我放置此新函數.m文件的文件夾中。當我從其他地方調用此函數時,當前位置將移至具有此功能的文件夾。我怎樣才能使用該功能,但留在當前文件夾?將一個新的函數.m文件添加到MATLAB永久
謝謝。
最簡單的解決方案是轉到Documents
目錄,在那裏您應該看到一個名爲Matlab
的文件夾。如果您將.m
文件放在那裏,即使您重新安裝Matlab,它也會始終可用。
謝謝。是的,我明白它應該起作用。但我無法解決的問題是,當前文件夾移動到我有這個功能的文件夾。我想留在目前的文件夾,但只是調用函數。 – Joseph
之所以會出現這樣奇怪的行爲是內部mmread,腳本調用cd
改變當前文件夾:
currentdir = pwd;
try
if ~ispc
cd(fileparts(mfilename('fullpath'))); % FFGrab searches for AVbin in the current directory
end
...
end
if ~ispc
cd(currentdir);
end
當腳本運行時沒有錯誤,它應該退出之前返回到當前文件夾。但如果出現問題,可能會中止而不恢復currentdir
。所以我認爲你最好花時間弄清楚腳本出了什麼問題,而不是試圖限制當前文件夾中的腳本。
謝謝。實際上,當我將mmread放在具有視頻文件的相同文件夾時,它會正確運行。所以我認爲當我打電話給mmread時,視頻文件名稱不能正確發送。我不確定發生了什麼事。 – Joseph
您是否使用過['addpath'](http://de.mathworks.com/help/matlab/ref/addpath.html)? – gdlmx
我也試過這個。但問題是當我調用該函數時,當前文件夾也會更改爲功能文件所在的文件夾。我想留在目前的文件夾,但只是調用函數。 – Joseph
如果您已經正確地將包含您的函數的文件夾添加到MATLAB的搜索路徑,那麼MATLAB在調用函數時將更改目錄的唯一原因是如果您在函數中使用'cd'並且沒有正確返回。能夠在不改變當前目錄的情況下調用函數是MATLAB搜索路徑的關鍵。 – excaza