
- Matlab 教程
- MATLAB - 首頁
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 環境設定
- MATLAB - 編輯器
- MATLAB - 線上版
- MATLAB - 工作區
- MATLAB - 語法
- MATLAB - 變數
- MATLAB - 命令
- MATLAB - 資料型別
- MATLAB - 運算子
- MATLAB - 日期和時間
- MATLAB - 數字
- MATLAB - 隨機數
- MATLAB - 字串和字元
- MATLAB - 文字格式化
- MATLAB - 時間表
- MATLAB - M 檔案
- MATLAB - 冒號表示法
- MATLAB - 資料匯入
- MATLAB - 資料匯出
- MATLAB - 資料歸一化
- MATLAB - 預定義變數
- MATLAB - 決策
- MATLAB - 決策語句
- MATLAB - if 語句
- MATLAB - if else 語句
- MATLAB - if…elseif else 語句
- MATLAB - 巢狀 if 語句
- MATLAB - switch 語句
- MATLAB - 巢狀 switch
- MATLAB - 迴圈
- MATLAB - 迴圈
- MATLAB - for 迴圈
- MATLAB - while 迴圈
- MATLAB - 巢狀迴圈
- MATLAB - break 語句
- MATLAB - continue 語句
- MATLAB - end 語句
- MATLAB - 陣列
- MATLAB - 陣列
- MATLAB - 向量
- MATLAB - 轉置運算子
- MATLAB - 陣列索引
- MATLAB - 多維陣列
- MATLAB - 相容陣列
- MATLAB - 分類陣列
- MATLAB - 元胞陣列
- MATLAB - 矩陣
- MATLAB - 稀疏矩陣
- MATLAB - 表格
- MATLAB - 結構體
- MATLAB - 陣列乘法
- MATLAB - 陣列除法
- MATLAB - 陣列函式
- MATLAB - 函式
- MATLAB - 函式
- MATLAB - 函式引數
- MATLAB - 匿名函式
- MATLAB - 巢狀函式
- MATLAB - 返回語句
- MATLAB - 無返回值函式
- MATLAB - 區域性函式
- MATLAB - 全域性變數
- MATLAB - 函式控制代碼
- MATLAB - 濾波器函式
- MATLAB - 階乘
- MATLAB - 私有函式
- MATLAB - 子函式
- MATLAB - 遞迴函式
- MATLAB - 函式優先順序
- MATLAB - map 函式
- MATLAB - mean 函式
- MATLAB - end 函式
- MATLAB - 錯誤處理
- MATLAB - 錯誤處理
- MATLAB - try...catch 語句
- MATLAB - 除錯
- MATLAB - 繪圖
- MATLAB - 繪圖
- MATLAB - 繪製陣列
- MATLAB - 繪製向量
- MATLAB - 條形圖
- MATLAB - 直方圖
- MATLAB - 圖形
- MATLAB - 二維線圖
- MATLAB - 三維圖
- MATLAB - 格式化繪圖
- MATLAB - 對數座標軸繪圖
- MATLAB - 繪製誤差條
- MATLAB - 繪製三維等值線圖
- MATLAB - 極座標圖
- MATLAB - 散點圖
- MATLAB - 繪製表示式或函式
- MATLAB - 繪製矩形
- MATLAB - 繪製頻譜圖
- MATLAB - 繪製網格曲面圖
- MATLAB - 繪製正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 線性插值
- MATLAB - 二維陣列插值
- MATLAB - 三維陣列插值
- MATLAB - 多項式
- MATLAB - 多項式
- MATLAB - 多項式加法
- MATLAB - 多項式乘法
- MATLAB - 多項式除法
- MATLAB - 多項式的導數
- MATLAB - 變換
- MATLAB - 變換函式
- MATLAB - 拉普拉斯變換
- MATLAB - 拉普拉斯濾波器
- MATLAB - 高斯-拉普拉斯濾波器
- MATLAB - 逆傅立葉變換
- MATLAB - 傅立葉變換
- MATLAB - 快速傅立葉變換
- MATLAB - 二維逆餘弦變換
- MATLAB - 向座標軸新增圖例
- MATLAB - 面向物件
- MATLAB - 面向物件程式設計
- MATLAB - 類和物件
- MATLAB - 函式過載
- MATLAB - 運算子過載
- MATLAB - 使用者自定義類
- MATLAB - 複製物件
- MATLAB - 代數
- MATLAB - 線性代數
- MATLAB - 高斯消元法
- MATLAB - 高斯-約旦消元法
- MATLAB - 簡化行階梯形式
- MATLAB - 特徵值和特徵向量
- MATLAB - 積分
- MATLAB - 積分
- MATLAB - 二重積分
- MATLAB - 梯形法則
- MATLAB - 辛普森法則
- MATLAB - 其他
- MATLAB - 微積分
- MATLAB - 微分
- MATLAB - 矩陣求逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用資源
- MATLAB - 快速指南
- MATLAB - 有用資源
- MATLAB - 討論
MATLAB - 資料型別
MATLAB 不需要任何型別宣告或維度語句。每當 MATLAB 遇到一個新的變數名時,它都會建立該變數並分配相應的記憶體空間。
如果變數已存在,則 MATLAB 會將原始內容替換為新內容,並在必要時分配新的儲存空間。
例如:
Total = 42
上述語句建立一個名為“Total”的 1×1 矩陣,並在其中儲存值 42。
MATLAB 中可用的資料型別
MATLAB 提供 15 種基本資料型別。每種資料型別都儲存以矩陣或陣列形式存在的資料。此矩陣或陣列的尺寸最小為 0×0,可以增長到任何尺寸的矩陣或陣列。
下表顯示了 MATLAB 中最常用的資料型別:
序號 | 資料型別和描述 |
---|---|
1 | int8 8 位有符號整數 |
2 | uint8 8 位無符號整數 |
3 | int16 16 位有符號整數 |
4 | uint16 16 位無符號整數 |
5 | int32 32 位有符號整數 |
6 | uint32 32 位無符號整數 |
7 | int64 64 位有符號整數 |
8 | uint64 64 位無符號整數 |
9 | single 單精度數值資料 |
10 | double 雙精度數值資料 |
11 | logical 邏輯值 1 或 0,分別表示真和假 |
12 | char 字元資料(字串儲存為字元向量) |
13 | 元胞陣列 索引單元格的陣列,每個單元格都可以儲存不同維度和資料型別的陣列 |
14 | 結構體 C 語言風格的結構體,每個結構體都有命名欄位,可以儲存不同維度和資料型別的陣列 |
15 | 函式控制代碼 指向函式的指標 |
16 | 使用者類 從使用者定義的類構造的物件 |
17 | Java 類 從 Java 類構造的物件 |
示例
建立一個包含以下程式碼的指令碼檔案:
str = 'Hello World!' n = 2345 d = double(n) un = uint32(789.50) rn = 5678.92347 c = int32(rn)
編譯並執行上述程式碼後,將產生以下結果:
str = Hello World! n = 2345 d = 2345 un = 790 rn = 5678.9 c = 5679
資料型別轉換
MATLAB 提供各種函式用於將值從一種資料型別轉換為另一種資料型別。下表顯示了資料型別轉換函式:
函式 | 用途 |
---|---|
char | 轉換為字元陣列(字串) |
int2str | 將整數資料轉換為字串 |
mat2str | 將矩陣轉換為字串 |
num2str | 將數字轉換為字串 |
str2double | 將字串轉換為雙精度值 |
str2num | 將字串轉換為數字 |
native2unicode | 將數字位元組轉換為 Unicode 字元 |
unicode2native | 將 Unicode 字元轉換為數字位元組 |
base2dec | 將 N 進位制數字字串轉換為十進位制數字 |
bin2dec | 將二進位制數字字串轉換為十進位制數字 |
dec2base | 將十進位制轉換為 N 進位制數字字串 |
dec2bin | 將十進位制轉換為二進位制數字字串 |
dec2hex | 將十進位制轉換為十六進位制數字字串 |
hex2dec | 將十六進位制數字字串轉換為十進位制數字 |
hex2num | 將十六進位制數字字串轉換為雙精度數字 |
num2hex | 將單精度和雙精度數轉換為 IEEE 十六進位制字串 |
cell2mat | 將元胞陣列轉換為數值陣列 |
cell2struct | 將元胞陣列轉換為結構體陣列 |
cellstr | 從字元陣列建立字串元胞陣列 |
mat2cell | 將陣列轉換為元胞陣列,元胞大小可能不同 |
num2cell | 將陣列轉換為元胞陣列,元胞大小一致 |
struct2cell | 將結構體轉換為元胞陣列 |
資料型別的確定
MATLAB 提供各種函式用於識別變數的資料型別。
下表提供了確定變數資料型別的函式:
函式 | 用途 |
---|---|
is | 檢測狀態 |
isa | 確定輸入是否為指定類的物件 |
iscell | 確定輸入是否為元胞陣列 |
iscellstr | 確定輸入是否為字串元胞陣列 |
ischar | 確定專案是否為字元陣列 |
isfield | 確定輸入是否為結構體陣列欄位 |
isfloat | 確定輸入是否為浮點陣列 |
ishghandle | 對於控制代碼圖形物件控制代碼為真 |
isinteger | 確定輸入是否為整數陣列 |
isjava | 確定輸入是否為 Java 物件 |
islogical | 確定輸入是否為邏輯陣列 |
isnumeric | 確定輸入是否為數值陣列 |
isobject | 確定輸入是否為 MATLAB 物件 |
isreal | 檢查輸入是否為實數陣列 |
isscalar | 確定輸入是否為標量 |
isstr | 確定輸入是否為字元陣列 |
isstruct | 確定輸入是否為結構體陣列 |
isvector | 確定輸入是否為向量 |
class | 確定物件的類 |
validateattributes | 檢查陣列的有效性 |
whos | 列出工作區中的變數,包括大小和型別 |
示例
建立一個包含以下程式碼的指令碼檔案:
x = 3 isinteger(x) isfloat(x) isvector(x) isscalar(x) isnumeric(x) x = 23.54 isinteger(x) isfloat(x) isvector(x) isscalar(x) isnumeric(x) x = [1 2 3] isinteger(x) isfloat(x) isvector(x) isscalar(x) x = 'Hello' isinteger(x) isfloat(x) isvector(x) isscalar(x) isnumeric(x)
執行檔案時,會產生以下結果:
x = 3 ans = 0 ans = 1 ans = 1 ans = 1 ans = 1 x = 23.540 ans = 0 ans = 1 ans = 1 ans = 1 ans = 1 x = 1 2 3 ans = 0 ans = 1 ans = 1 ans = 0 x = Hello ans = 0 ans = 0 ans = 1 ans = 0 ans = 0
廣告