MATLAB筆記之數據結構
字符串
在MATLAB中字符采用16位Unicode編碼,每個字符佔用2字節的存儲空間。
長度相同的字符串組成的數組叫做字符數組。
長度不同的字符串組成的數組叫字符串單元數組。
數據類型 | 創建方式 |
---|---|
一維字符數組 | A=‘abc’ |
二維字符數組 | A=[‘abc’;‘abc’]或者A=char(‘abc’,‘abc’)字符串等長 |
字符串單元數組 | A={‘a’;‘ab’}或者cellstr()字符串可不等長 |
混淆點 | 區別 |
---|---|
字符串連接 | [ ]直接連接;strcat()去除尾部空格連接 |
字符串比較 | strcmp()直接比較字符;isequal()直接比較Unicode碼 |
字符串查找 | findstr()在長的字符串中查找短的字符串;strfind()在第一個字符串中查找第二個字符串(高版本使用isstrprop()函數) |
字符串轉換 | str2num()矩陣運算,生成數值矩陣;str2double()標量運算,生成數值 |
結構數組
類似於C語言結構體的“結構–>字段–>字段值”形式,可以包含任何類型的數據。
數據類型 | 創建方式 |
---|---|
結構數組 | (.)運算符 A.name=‘abc’;A.rank=2;A.score=[90 90 90] |
結構數組 | struct()函數,A=struct(‘name’,{‘aa’,‘bb’},‘rank’,{1,2})創建1X2結構 |
單元數組
單元數組是一種特殊的數組形式,可以存儲不同類型的數據結構,數組中每個單元是獨立存在的。
結構數組通過字段獲取信息,單元數組通過矩陣索引獲取信息。
單元數組類似於鏈表,每個鏈表節點類似於結構體,鏈表存儲空間不一定連續,但鏈表節點存儲空間一定是連續的。每個單元附帶兩個位置指針4字節和單元信息56字節。
數據類型 | 創建方式 |
---|---|
單元數組 | 直接創建 A(1)={{‘abc’;‘def’}};A(2)={[‘A’ ‘B’]};A(3)={[90 90 90]} |
單元數組 | cell()函數 |
函數句柄
函數句柄是一種特殊的數據類型,提供間接調用函數的方法,類似於C語言的指針,在MATLAB中指向函數。
數據類型 | 創建方式 |
---|---|
函數句柄 | @創建 A=@sin; |
函數句柄 | str2func()函數創建 A=str2func(‘sin’) |
矩陣、向量、標量、數組
矩陣:矩陣是二維的,由行和列組成
向量:一維長度爲1,另一維長度大於1的矩陣,分爲行向量和列向量
標量:兩維長度都爲1的矩陣
數組:數組的維數爲任意非負整數