matlab中exist 檢查變量、腳本、函數、文件夾或類的存在情況


參考:

1.https://ww2.mathworks.cn/help/matlab/ref/exist.html?searchHighlight=exist&s_tid=doc_srchtitle

2.

 

官方解釋:

exist

檢查變量、腳本、函數、文件夾或類的存在情況

全頁折疊
 

說明

示例

exist name 以數字形式返回 name 的類型。此列表描述與每個值關聯的類型:

  • 0 - name 不存在或因其他原因找不到。例如,如果 name 存在於 MATLAB® 不能訪問的受限文件夾中,exist 將返回 0。

  • 1 - name 是工作區中的變量。

  • 2 - name 是擴展名為 .m.mlx、 或 .mlapp 的文件,name 是具有未注冊文件擴展名(.mat.fig.txt)的文件的名稱。

  • 3 - name 是 MATLAB 搜索路徑上的 MEX 文件。

  • 4 - name 是已加載的 Simulink® 模型或者位於 MATLAB 搜索路徑上的 Simulink 模型或庫文件。

  • 5 - name 是內置 MATLAB 函數。這不包括類。

  • 6 - name 是 MATLAB 搜索路徑上的 P 代碼文件。

  • 7 - name 是文件夾。

  • 8 - name 是類。(如果使用 -nojvm 選項啟動 MATLAB,則 exist 對 Java 類返回 0。)

MATLAB 搜索從搜索路徑的頂層開始並向下移動,直到找到結果或到達路徑上的最后一個文件夾。如果一個文件夾中存在多個 name,根據 函數優先順序,MATLAB 將顯示 name 的第一個實例。文件夾是函數優先級規則的例外。除變量和內置函數外,它們的優先級高於所有類型。

例如,如果 name 與一個擴展名為 .m 的文件和一個 P 代碼文件均匹配,則 exist 返回 6,即將其識別為 P 代碼文件。如果 name 與變量和 P 代碼文件均匹配,則 exist 返回 1,即將其識別為變量。如果 name 與文件夾和 MATLAB 函數均匹配,則 exist 返回 7,即將其識別為文件夾。

示例

exist name searchType 返回 name 的類型,從而將結果限定為指定的類型 searchType。如果 searchType 類型的 name 不存在,則 MATLAB 返回 0

示例

A = exist(___)name 的類型返回到 A

 

示例

全部折疊

檢查工作區變量是否存在

創建一個名為 testresults 的變量,然后確認它是否存在於工作區中。

testresults = magic(5);
exist testresults
ans = 1

名為 testresults 的變量存在於工作區中。

 
 

檢查文件夾是否存在

創建文件夾 myfolder,然后檢查它是否作為文件夾存在。

mkdir myfolder;
exist myfolder dir
ans = 7

如果您指定類型為 file,MATLAB® 將同時搜索文件和文件夾,因此返回相同的結果。

exist myfolder file
ans = 7
 
 

檢查 MATLAB 函數是否為內置函數

檢查 plot 函數是內置函數還是文件。

A = exist('plot')
A = 5

這表明 plot 是一個 MATLAB 內置函數。

 
 

輸入參數

全部折疊

name - 變量、腳本、函數、文件夾或類的名稱
字符向量 | 字符串標量

變量、腳本、函數、文件夾或類的名稱,指定為字符向量或字符串標量。

name 可以包含部分路徑,但必須為以下各項之一:

  • 搜索路徑上的一個文件夾

  • 搜索路徑上的一個文件夾中的內容

  • 當前文件夾

  • 當前文件夾中的內容

路徑上文件夾的子文件夾不被搜索。

否則,name 必須包括完整路徑。

如果 name 指定的文件具有未注冊的文件擴展名(.mat.fig.txt),則要包括擴展名。您還可以包括擴展名以防與其他類似文件名沖突。例如,exist file.txtexist("file.txt")

 

注意

MATLAB 不檢查文件的內容或內部結構,而只依賴文件擴展名進行分類。

 

數據類型: char | string

searchType - 要搜索的結果的類型
builtin | class | dir | file | var

要搜索的結果的類型,指定為下列值之一:

searchType 說明 可能的返回值

builtin

只檢查內置函數。

5、0

class

只檢查類。

8、0

dir

只檢查文件夾。

7、0

file

只檢查文件或文件夾。

2、3、4、6、7、0

var

只檢查變量。

1、0

 

替代功能

  • 要檢查文件或文件夾是否存在,還可以使用 isfolderisfile 函數。exist 搜索位於搜索路徑上的文件和文件夾,這可能會導致意外結果。isfolderisfile 僅在指定路徑或當前文件夾中搜索文件或文件夾,這樣可以更快地獲得更明確的結果。

在 R2006a 之前推出

 

如果官方解釋還不夠清楚,下面是參考的一篇博文

MATLAB中exist函數的用法

 

exist:
exist主要有兩種形式,一個參數和兩個參數的,作用都是用於確定某值是否存在:
1. b = exist( a)
      若 a 存在,則 b = 1; 否則 b = 0;
2. b = exist( 'name', 'kind')
      kind 表示 name 的類型,可以取的值為:builtin(內建類型),class(類),dir(文件夾),file(文件或文件夾),var(變量)。

cell:
cell 是 matlab 中的一種數據類型,用{}來定義, {}內可以放任何類型的數據和矩陣
1. A = {[ 2, 4]} 就表示新建了一個 cell 類型的變量,這個變量包含一個 2 * 1 的矩陣,要引用 cell 類型的話,直接用下標來引用,    
      如:A{1} 就可以得到[ 2, 4] 這個矩陣了。
2. 在上述的 A 中增加一個元素:(有兩種方法實現)
    (1).B(2) = { ‘SecondElement’}; 
    (2).B{2} = ‘SecondElement’;
3.cell 函數:
    B = cell(100, 1)
   表示 給 B 賦予100 * 1 個cell元素,但未賦值

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM