【MATLAB】MATLAB的數據類型和函數說明


1.MATLAB的數據類型

如下圖所示,MATLAB可以支持15種基本的數據類型,從類型上包括整形(int/uint)、浮點型(single/double)、字符型(char)、邏輯型(logical)、元胞數組(cell)、結構數組(struct)以及函數句柄(function_handle)等。可以將上述類型歸納為基本的數據結構:int、double、char以及高級數據結構(容器,container),即cell和struct.下面簡要介紹一下:

  • 整形:整形分為有符號整形(int)和無符號整形(uint),同時根據存儲時占用的字節數又可以分成8位、16位、32位和64位。 通常用MATALB讀取圖片時,系統默認存儲格式為int8。

  • 浮點型:浮點型分為單精度(single)和雙精度(double),單精度存儲需要32位(4個字節),雙精度存儲需要64位(8個字節)。默認情況下,MATLAB將所有的數值存儲為雙精度浮點型。

  • 字符型:通常用於表示代碼中需要讀寫的字符或者字符串,以字符數組的形式進行存儲。

  • 邏輯型:通常用於判斷一段語句是否正確,如下就是一個判斷語句,因為a>1不成立,所以輸出的b=0

    a=0;
    b=(a>1)
    
  • 結構數組:結構數組可以包含多種不同的數據類型,如我們要記錄名字、年齡、性別,那么就可以通過定義統一的結構數組Infomation來記錄。如下:

    Infomation.name='LIM'
    Infomation.gender='man'	
    Infomation.age=23
    %輸出
    >>whos Infomation
      Name            Size            Bytes  Class     Attributes
    
      Infomation      1x1               548  struct 
    
  • 元胞數組:元胞數組也可以存儲不同類型的數據,同時它還可以通過索引的形式對存儲的數據進行訪問。元胞數組定義時用大括號{}(也還有其他的方法定義,此處不再詳述),如下:

    Information={'LIM','man',23}
    %輸出
    >>whos Information
      Name             Size            Bytes  Class    Attributes
    
      Information      1x3               356  cell   
    >> Information(1)%索引
    ans = 
        'LIM'
        
    %還可以用如下的方式來定義
    a{1,1}=[1,2,4;3,4,5;3,6,7;8,9,0];
    a{1,2}='Testing string';
    a{2,1}=5657;
    a{2,2}=[];%空的
    %看看元胞數組a的內容怎么樣
    >>a
    a = 
        [4x3 double]    'Testing string'
        [      5657]                  []
    % 索引時有如下的區別,小括號索引只顯示大小,大括號索引顯示具體數據        
    >> a(1,1)
    ans = 
        [4x3 double]
    >> a{1,1}
    ans =
         1     2     4
         3     4     5
         3     6     7
         8     9     0
    
  • 函數句柄:函數句柄通常用於間接調用一個函數的取值或者是數據類型。通常用於作圖過程中對圖片不同的屬性進行操作。圖形窗口中的線條、曲面等都是圖形對象,而這些圖形對象可以通過一個被稱為“句柄值”的東西加以控制,如畫出一條直線,可以通過句柄值修改線條的顏色,寬度等等。而所謂的句柄值就是一個數值,每個圖形對象都對應這唯一的句柄值。

    %如下,可以通過直接輸入h,就可以得到這個線條的屬性了
    h=line([0,1],[0,1])
    >> h %如果想要完全顯示所有屬性,可以用get(h)
    h = 
    
      Line (具有屬性):
    
                  Color: [0 0.4470 0.7410]
              LineStyle: ':'
              LineWidth: 2
                 Marker: 'none'
             MarkerSize: 6
        MarkerFaceColor: 'none'
                  XData: [0 1]
                  YData: [0 1]
                  ZData: [1x0 double]
                  
    %則可以通過如下的形式修改句柄值(屬性)
    h.LineWidth=2 
    

補充(高維矩陣的說明):

MATLAB中的多維矩陣,就是在定義二維矩陣時再添加一個維度,也即定義在了不同的頁面上(就這樣理解),所以索引時除了與二維的相同外,還要再加一個頁數索引。

2.MATLAB的函數

matlab除了用function[]=funname()自定義的永久性函數外,還有一些臨時性函數。

  • 永久性函數:由函數文件形式建立的自定義函數

    function[output1,output2,...]=FunName(input1,input2,...)
    %函數體
    
  • 臨時性函數:臨時性函數通常用於創建需要臨時使用的簡單的函數。臨時性函數包括內聯函數(inline function)和匿名函數(anonymous function),它們既可以再編輯器中編輯,也可以在命令窗口中編輯。而匿名函數的效率優於內聯函數,故建議使用匿名函數。

    %內聯函數 由inline函數建立,格式如下:
    FunName=inline('expression','arg1','arg2',...)%可以通過函數名調用,expression是函數的表達式,arg1等%是輸入的變量,例如:
    f=inline('x^2+y^2','x','y');
    >> f(3,4)
    ans =
        25
    >> whos f
      Name      Size            Bytes  Class     Attributes
    
      f         1x1              1190  inline  
      
    %------------------------------------------------------------------------------------ 
    % 匿名函數  匿名函數通過“@”表示函數指針(或稱函數句柄),格式如下:
    FunName=@(arg1,arg2,...)expression %同上
    ff=@(x,y)x^2+y^2;
    >> ff(3,4)
    ans =
        25
    >> whos ff
      Name      Size            Bytes  Class              Attributes
    
      ff        1x1                32  function_handle              
    
    


免責聲明!

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



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