MATLAB 數據類型:您需要知道的一切
已發表: 2020-09-16MATLAB 提供了多種存儲數字和變量的方法。 所有的數字都等價於實際的數字實數。 最大數有上限,非零數的絕對值有下限。 這是由於與實數相比,處理設備的內存有限,實數可能是無限的。
由於空間有限,MATLAB 變量不能存儲無理數。 例如,將 pi 的值返回到近似值。 MATLAB 變量中表示的值集是有限的。 MATLAB 中的數據類型將有助於處理此限制。
所有 MATLAB 變量都屬於一個類,其中不同的類具有不同的特性,適合表示不同類型的數據,無論是數值、文本還是複雜數據。
請記住:數組中的所有給定元素都應該屬於同一類型。
MATLAB 總共提供了 16 種基本類型,MATLAB 中的數據類型定義為:
- 定義的值集
- 可用於對這些值執行的操作集

資源

目錄
數值類型
數值類型包括有符號和無符號整數、單精度、雙精度浮點數。 下面列出了數值變量及其特徵:
| 雙倍的 | 雙精度數組 |
負數 = -1.79769 x 10 308和 -2.22507 x 10 -308 正數 = 2.22507 x 10 -308和 1.79769 x 10 308 |
| 單身的 | 單精度數組 |
負數 = -1.79769 x 10 308和 -2.22507 x 10 -308 正數 = 2.22507 x 10 -308和 1.79769 x 10 308 |
| 整數8 | 8 位有符號整數數組 |
|
| 整數16 | 16 位有符號整數數組 |
|
| 整數32 | 32 位有符號整數數組 |
|
| 整數64 | 64 位有符號整數數組 |
|
| uint8 | 8 位無符號整數數組 |
|
| uint16 | 16 位無符號整數數組 |
|
| uint32 | 32 位無符號整數數組 |
|
| uint64 | 64 位無符號整數數組 |
|
閱讀: MATLAB 中的 While 循環:您需要知道的一切
邏輯類型
真假值用邏輯值0和1表示。任何數值(非複數)都可以轉換成邏輯表示。
語法:L = 邏輯 (x)
上述語句將 x 轉換為任何邏輯值數組。 x 的非零元素轉換為邏輯值 1(真),零值轉換為邏輯值 0(假)。
字符和字符串類型
MATLAB 字符和字符串數組提供文本數據的存儲。 字符序列是一個字符數組,與數字序列相比稱為數字數組。
語法:c = 'up grad'
“up grad”是形成字符串數組的字符序列。 我們也可以將其視為一段包裹的文本。
元胞數組
元胞數組是一種 MATLAB 數據類型,其中包含稱為cells的索引數據容器。 單元格可以包含任何類型的數據,通常包含不同長度的字符向量、數字、任意大小的數字數組。 一組單元格包含在 () 中,並且通過使用 {} 完成對單元格的訪問,該 {} 用於創建、編輯或刪除任何單元格函數。
語法: c = {s,m,i,l,e}
表
表格或面向列的數據需要表格,並且它作為列存儲在文本文件或電子表格中。 它包含行和列變量。 每個變量可以是不同的數據類型和不同的大小,但每個變量需要具有相同的行數。

函數範圍用於訪問數據以創建、編輯和讀取表數據。
結構
命名字段包含不同類型和大小的數據。 這里數據容器用於對相關數據及其類型進行分組,稱為字段。 字段可以包含任何類型的數據。
使用點符號給出對結構中數據的訪問。
格式:structname.fieldName。
例子:
標量結構用於存儲患者記錄,屬於同一組。
患者(1).name = 'John Doe';
患者(1).billing = 127.00;
患者(1).test = [79, 75, 73; 180、178、177.5; 220、210、205];
函數句柄
函數句柄的使用主要是將函數(數字或字符)傳遞給另一個函數。 用於間接調用函數的變量可以命名為函數句柄。
要創建函數句柄,使用“@”運算符。
示例:要創建一個函數句柄來評估 a2 -b2 ,使用的函數是:
F = @(a,b) (a.^2 – b.^2);
數據類型識別
MATLAB 有一組用於識別數據類型的變量
| 日曆時間 | 檢查輸入數據是否為日曆持續時間數組 |
| iscellstr | 檢查輸入數據是否為字符向量元胞數組 |
| 伊塞爾 | 檢查輸入數據是否為元胞數組 |
| 伊斯爪哇 | 檢查輸入數據是否為 Java 對象 |
| 伊沙爾 | 檢查輸入數據是否為字符數組 |
| 是分類的 | 檢查輸入數據是否為分類數組 |
| 持續時間 | 檢查輸入數據是否為持續時間數組 |
| 伊塞納姆 | 檢查變量是否為枚舉 |
| isfloat | 檢查輸入數據是否為浮點數組 |
| 日期時間 | 檢查輸入數據是否為日期時間數組 |
| 整數 | 檢查輸入數據是否為整數數組 |
| 穩定的 | 檢查輸入數據是否為表格 |
| 圖形 | 對有效的圖形對象句柄為真 |
| 非數字的 | 檢查輸入數據是否為數值數組 |
| 是對象 | 檢查輸入數據是否為 MATLAB 對象 |
| 是真實的 | 檢查數組是否真實 |
| 字符串 | 檢查輸入數據是否為字符串數組 |
| 結構 | 檢查輸入數據是否為結構數組 |
| 驗證屬性 | 檢查數組的有效性 |
| 時間表 | 檢查輸入數據是否為時間表 |
| 伊薩 | 檢查輸入數據是否具有指定的數據類型 |
| 不合邏輯的 | 檢查輸入數據是否為邏輯數組 |
| 是* | 檢測狀態 |
| 班級 | 對像類別 |
數據類型轉換
以下函數用於在不同的 MATLAB 數據類型、數值數組、字符數組、元胞數組、結構體或表之間進行切換。
char – 字符數組
cellstr – 更改為字符向量元胞數組
int2str – 將整數轉換為字符
mat2str - 將矩陣更改為字符
num2str – 將數字更改為字符數組
str2double – 將字符串更改為雙精度值
str2num - 將字符數組或字符串更改為數值數組
native2unicode – 將數字字節更改為 Unicode 字符表示
unicode2native – 將 Unicode 字符表示更改為數字字節
base2dec – 將表示以 N 為底的數字的文本更改為十進制數
hex2dec – 將十六進制數的文本表示更改為十進制數
hex2num – 將 IEEE 十六進制格式更改為雙精度數
num2hex – 將單精度和雙精度數字更改為 IEEE 十六進制格式
table2array - 將表更改為同構數組
table2cell – 將表格更改為元胞數組
table2struct - 將表更改為結構數組
array2table – 將同構數組更改為表
cell2table – 將元胞數組更改為表格
struct2table – 將結構數組更改為表
cell2mat – 將元胞數組更改為基礎數據類型的普通數組
cell2struct – 將元胞數組更改為結構體數組
mat2cell - 將數組更改為單元格包含子數組的單元格數組
num2cell - 將數組更改為具有一致大小的單元格的單元格數組
struct2cell – 將結構更改為元胞數組

另請閱讀:數據結構中的遞歸:它是如何工作的、類型和何時使用
結論
從上面的文章中,我們對各種 MATLAB 數據類型進行了概述。 這些數據類型中的每一種對於 MATLAB 用戶理解和有效使用 MATLAB 編程都非常重要。 MATLAB 因其精確的計算、語法和龐大的社區支持而在科學和工程領域非常流行。
如果您有興趣了解有關 MATLAB、機器學習及其相關主題的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和人工智能 PG 文憑,該文憑專為在職專業人士設計,提供 450 多個小時的嚴格培訓,30 多個案例研究和作業、IIIT-B 校友身份、5 個以上實用的實踐頂點項目和頂級公司的工作協助。
MATLAB 中使用了哪些不同的數據類型?
MATLAB 中的數據可以是數字或字符。 數字數據表示與您熟悉的數字和算術運算(例如加法和乘法)相對應的值。 字符數據是文本字符串,例如單詞、字母或符號(例如“$”)。 可以使用與數字數據相同的語法訪問字符數組的元素(例如,C('This is a character array') 返回數組 C 中包含字符串的元素,這是一個字符數組)。
MATLAB 中的結構是什麼?
MATLAB 包括三類結構體:元胞數組、結構體和句柄數組。 元胞數組是包含不同類型元素的單個數據結構。 元胞數組實際上是一組結構,每個結構都包含數組的一個元素。 如果您使用 cell() 函數創建元胞數組,MATLAB 默認會用零填充數組。 結構是變量的集合,它們都具有相同的名稱,但可能具有不同的類型。 MATLAB 將結構體作為元胞數組處理。 您只能在元胞數組中存儲一個結構。 句柄數組是引用其他 MATLAB 數組或對象(如圖形和圖形)的容器。 您可以將多個句柄數組存儲在一個元胞數組中。
matlab中如何識別數據類型?
這可以使用 matlab 中的 isa 命令來完成。 isa 命令的語法如下:isa(my_data)。 例如:如果想知道my_data的數據類型,可以使用isa命令為:isa(my_data) 這將返回如下文本:int64,int32,int16,uint8,uint32,uint64,complex64,complex128,char . 該命令只能在 matlab 中使用。
