爲了發佈我寫的函數,這個函數依賴於我編寫的其他函數,它們有自己的依賴關係等等,而不分發我所寫過的每個m文件,我需要弄清楚完整的列表依賴關係是針對給定的m文件的。是否有內置/免費下載的方式來做到這一點?如何在MATLAB中生成函數依賴關係列表?
具體而言,我對MATLAB 7.4.0(R2007a)的解決方案很感興趣,但如果在老版本中有不同的方法,請務必在此處添加它們。
爲了發佈我寫的函數,這個函數依賴於我編寫的其他函數,它們有自己的依賴關係等等,而不分發我所寫過的每個m文件,我需要弄清楚完整的列表依賴關係是針對給定的m文件的。是否有內置/免費下載的方式來做到這一點?如何在MATLAB中生成函數依賴關係列表?
具體而言,我對MATLAB 7.4.0(R2007a)的解決方案很感興趣,但如果在老版本中有不同的方法,請務必在此處添加它們。
對於(如2007年或2008年),你可以使用內置的功能Matlab的較新版本:
另一種選擇是使用Matlab的分析器。該命令是配置文件,它也可以用來跟蹤依賴關係。要使用的個人資料,你可以做
>> profile on % turn profiling on
>> foo; % entry point to your matlab function or script
>> profile off % turn profiling off
>> profview % view the report
如果探查器不可用,那麼也許下面的兩個函數(預MATLAB 2015A):
例如,
>> deps = depfun('foo');
給出了一個包含foo.m的所有依賴關係的結構deps。
從答案2和3,更新版本的MATLAB(2015a後)使用matlab.codetools.requiredFilesAndProducts
來代替。
條回答
編輯:
注意事項感謝@Mike卡茨評論
記住探查器將只 告訴你文件實際上在這些試驗中使用 ,所以如果你不通過每個分支去 ,你可能有 額外的依賴關係。 相關性報告是一個很好的工具,但 僅解決了路徑上的靜態依賴關係,僅解決了單個目錄中 文件的靜態依賴關係。
Depfun更可靠,但它給你 它可以想到的每一件可能的事情, ,仍然會錯過LOAD和EVAL的。
對於MATLAB 2015a
,以後你最好看看matlab.codetools.requiredFilesAndProducts
或doc matlab.codetools.requiredFilesAndProducts
因爲depfun
被標記在將來的版本中刪除。
更新:對於MATLAB 2015b,depfun和depdir已被刪除,因此您必須使用matlab.codetools.requiredFilesAndProducts()。
請記住,事件探查器只會顯示在這些運行中實際使用的文件,因此如果您沒有瀏覽每個分支,則可能有其他依賴關係。依賴性報表是一個很好的工具,但只能解決路徑上的靜態依賴關係,並且僅用於單個目錄中的文件。 – 2009-03-14 14:24:20
Depfun更可靠,但可以爲您提供它想到的所有可能的事情,並且仍然會錯過LOAD和EVAL。 – 2009-03-14 14:25:19