MATLAB 數據類型:您需要知道的一切

已發表: 2020-09-16

MATLAB 提供了多種存儲數字和變量的方法。 所有的數字都等價於實際的數字實數。 最大數有上限,非零數的絕對值有下限。 這是由於與實數相比,處理設備的內存有限,實數可能是無限的。

由於空間有限,MATLAB 變量不能存儲無理數。 例如,將 pi 的值返回到近似值。 MATLAB 變量中表示的值集是有限的。 MATLAB 中的數據類型將有助於處理此限制。

所有 MATLAB 變量都屬於一個類,其中不同的類具有不同的特性,適合表示不同類型的數據,無論是數值、文本還是複雜數據。

請記住:數組中的所有給定元素都應該屬於同一類型。

MATLAB 總共提供了 16 種基本類型,MATLAB 中的數據類型定義為:

  • 定義的值集
  • 可用於對這些值執行的操作集

資源

目錄

數值類型

數值類型包括有符號和無符號整數、單精度、雙精度浮點數。 下面列出了數值變量及其特徵:

雙倍的雙精度數組
  • MATLAB 中的默認數值數據類型(類)
  • 存儲為 64 位(8 字節)浮點值
  • 範圍-

負數 = -1.79769 x 10 308和 -2.22507 x 10 -308

正數 = 2.22507 x 10 -308和 1.79769 x 10 308

單身的單精度數組
  • 存儲為 4 字節(32 位)浮點值
  • 範圍-

負數 = -1.79769 x 10 308和 -2.22507 x 10 -308

正數 = 2.22507 x 10 -308和 1.79769 x 10 308

整數8 8 位有符號整數數組
  • 存儲為 1 字節(8 位)有符號整數
  • 範圍是 -2 7到 2 7 -1
整數16 16 位有符號整數數組
  • 存儲為 2 字節(16 位)有符號整數
  • 範圍 -2 15到 2 15 -1
整數32 32 位有符號整數數組
  • 存儲為 4 字節(32 位)有符號整數
  • 範圍是 -2 31到 2 31 -1
整數64 64 位有符號整數數組
  • 存儲為 8 字節(64 位)有符號整數
  • 範圍是 -2 63到 2 63 -1
uint8 8 位無符號整數數組
  • 存儲為 1 字節(8 位)無符號整數
  • 範圍是 0 到 2 8 -1
uint16 16 位無符號整數數組
  • 存儲為 2 字節(16 位)無符號整數
  • 範圍是 0 到 2 16 -1
uint32 32 位無符號整數數組
  • 存儲為 4 字節(32 位)無符號整數
  • 範圍是 0 到 2 32 -1
uint64 64 位無符號整數數組
  • 存儲為 8 字節(64 位)無符號整數
  • 範圍是 0 到 2 64 -1

閱讀: 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 中使用。