1. 程式人生 > >MATLAB資料型別

MATLAB資料型別

MATLAB基本數值型別有整型與浮點型,此外,還有字元型、邏輯型、函式控制代碼、Java物件等型別,與陣列有關的型別有結構體和細胞陣列。

1. 整型

整型從位元組數、有無符號兩個方面可以分為int8、uint8、int16、uint16、int32、uint32、int64、uint64。整型數之間的運算是封閉的,整型數相除,結果四捨五入為新的整型數。不同細分型別的整型數之間不能直接運算。

2. 浮點型

浮點數包括單精度浮點數(single)與雙精度浮點數(double)。realmax('double')和realmax('single')分別返回兩者能表示的最大值。

3. 字元型

字元在MATLAB中用一對單引號分隔,字串儲存為字元陣列。如s=‘I Love MATLAB’,s即為1行13列的字元向量。多個字串可以形成矩陣,但每個字串長度必須相等,否則系統將會報錯。解決方法是認為加入空格,使矩陣的各行對齊,如a=['MATLAB';'C++   '],也可以使用char函式:a=char('MATLAB', 'C++')。

字串常用函式:

1)strfind(s1, s2):在s1中尋找s2,返回s2第一個字元所在的位置索引;

2)strcat(s1, s2,……,sn):連線各字串;

3)strcmp(s1, s2):按字典順序比較兩個字串;

4)strncmp(s1, s2, n):比較字串中的前n個字元;

5)strrep(s1, s2, s3):s1中的s2部分用s3替換。

4. 邏輯型

邏輯型變數只能取true(1)或false(0),在訪問矩陣元素時可以使用邏輯型變數,取出符合某種條件的元素。

5. 函式控制代碼

函式控制代碼可以方便函式名稱的管理,也可以加快程式執行的速度。注:使用函式控制代碼為什麼可以提高執行速度?提示:無需重新搜尋一遍路徑。

函式控制代碼中包含函式的路徑、函式名、型別及可能存在的過載方法等資訊,可以用functions(function_handle)來顯示函式控制代碼所包含的函式資訊。

控制代碼的宣告可以用如下方法:

1)變數名[email protected]

函式名

2)變數名=str2func('函式名');

3)宣告匿名函式控制代碼:變數名[email protected](輸入引數列表)函式表示式。

這裡使用的函式可以是預定義函式,也可以是使用者自定義的函式。宣告函式控制代碼以後,就可以像使用函式名一樣使用該函式控制代碼了,如宣告[email protected],就可以使用h(pi)代替sin(pi)。

函式控制代碼中的函式可以是自定義函式。舉個栗子:

匿名控制代碼的栗子:

6. Java物件

Java物件用在MATLAB中使用Java語言。檢視當前Java虛擬機器(JVM)版本:

7. 結構體與細胞陣列

普通的矩陣只能包含同一種資料型別的資料,且矩陣的行、列必須對齊。結構體包含若干欄位,欄位的值可以是任意資料型別和任意維度的變數,也可以是另一個結構陣列。細胞陣列的元素也可以是任意資料型別和任意維度的資料。與矩陣不同,細胞陣列引用元素時使用“{}”操作符,此時得到的資料的型別是元素本身的型別,而使用“[]”操作符引用元素時,得到的是一個小一些的細胞陣列。細胞陣列的記憶體空間是動態分配的,因此更加靈活,但執行效率欠佳。

建立細胞陣列:

建立結構體: