| MATLAB Function Reference | ![]() |
Graphical
Interface
可以用現行目錄瀏覽器( Current Directory browser)取代 which . 要開啟它, 在 MATLAB 桌面中的檢視(View)選單中選擇現行目錄 (Current Directory).
Syntax
which fun which classname/fun whichprivate/fun which classname/private/fun which fun1infun2 which fun(a,b,c,...) which file.ext which fun-alls = which('fun',...)
Description
which fun 將參數 fun的完整路徑顯示出來.假若
fun 是
which
將顯示所對應檔案的完整路徑
which 會顯示一個訊息來表明參數 fun
是工作變數或是固定的函數
which 將顯示此方法的包裝(Package),類別及方法名稱若參數 fun 是個重載(overloaded)的函數或方法, 則 which
fun 將只會送回第一個找到的函數或方法的路徑名稱.
which classname/fun 顯示MATLAB類別的
classname 中以 .m 為副檔名的 fun 方法的完整路徑名稱 , 舉例來說, 鍵入 which
serial/fopen將顯示 fopen.m的路徑, 而此路徑在MATLAB的 serial
類別目錄裡, .
which
限制私用函數的搜尋. 舉例來說, 鍵入 private/fun which private/orthog 將顯示在 toolbox\matlab\elmat子目錄下的\private目錄下的orthog.m路徑.
which classname/
限制以 MATLAB 類別 classname 定義的私用方法的搜尋. 舉例來說, private/fun which
dfilt/private/todtf 將顯示 dfilt 類別中私有目錄的todtf.m路徑.
which fun1
顯示在 fun2.m 內容中,函數in fun2 fun1的路徑名稱 . 由此形式可以決定是否fun1的子函數或私有版本(private
version) 是由 fun2所呼叫, 而不是一個函數的路徑. 舉例來說, 鍵入which
get in editpath 將告訴你 get 函數是由 editpath.m 所呼叫的.
在做 fun2的除錯時, 使用 which fun1
會得到相同的結果.
which fun(a,b,c,...) 顯示了由輸入引數所得特定函數的路徑.
舉例來說, 若 d 是一個資料庫驅動程式物件, 鍵入 which get(d) 將顯示
toolbox\database\database\@driver\get.m.
which file.ext 若檔案在現行工作目錄或是在MATLAB路徑時,將顯示某特定檔案的完整路徑名稱.
利用exist 指令可確定所有檔案的存在位置.
which fun
顯示所有名為 -all fun的 MATLAB 路徑. 在送回表單中的第一個物件通常和使用 which fun所得到的答案相同.
而其他的物件不是相似的就是可以以特殊方法執行. 而 -all 可用在相同格式的which 函數上.
s = which('fun',...) 將送回
which結果, 以字串 s的形式. 不論是固定函數或工作變數, s將分別為"固定"
或 "變數". 用以上的 which函數格式, 你將可檢視輸出的變數為何 .
若 -all 用此形式, 則輸出 s 將會是字串的異質陣列(cell
array),即使只有一個字串被送回.
Examples
底下的說明顯示了 inv 是固定的函數. 第二個說明顯示 pinv
是在MATLAB Toolbox 的matfun目錄下 .
which inv inv is a built-in function. which pinv matlabroot\toolbox\matlab\matfun\pinv.m
which serial/fopen matlabroot\toolbox\matlab\iofun\@serial\fopen.m % serial method
要找出 Java Frame類別下的setTitle 方法,
而此類別必需先被載入到 MATLAB 中. 這個類別將會被載入當你作出對這個類別的要求時.
frameObj = java.awt.Frame; which setTitle java.awt.Frame.setTitle % Frame method
下面的例子用 which fun(a,b,c,...)表示. which的結果由
feval函數所用的引數而有所不同. 當fun函數被處理時, MATLAB 評估 feval函數
是固定的.
fun = @abs; which feval(fun,-2.5) feval is a built-in function.
當fun 是 inline 函數時, MATLAB 評估feval方法是在inline類別中.
fun = inline('abs(x)');
which feval(fun,-2.5)
matlabroot\toolbox\matlab\funfun\@inline\feval.m % inline method
當你確定輸出變數時, which將會傳回變數的字串細胞陣列. 你用的 which函數
形式, 將所有參數放入括號和單引號中.
s = which('private/stradd','-all');
whos s
Name Size Bytes Class
s 3x1 562 cell array
Grand total is 146 elements using 562 bytes
See
Also
dir, doc,
exist, lookfor,
path, type,
what, who
|
whatsnew | while | ![]() |