- 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 - return 語句
- 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 使用格式化運算子來管理符號、對齊方式、有效數字等。函式 num2str 和 sprintf 是最常用的方法,它們使用格式化運算子來處理文字格式化。
例如,格式化運算子如下:
%f 用於使用定點表示法將浮點值轉換為文字。
%.2f 用於表示小數點後 2 位數字。
%12f 用於在輸出中顯示 12 個字元,包括填充和空格。
在 Matlab 中,支援格式化運算子的函式包括 compose、num2str、sprintf、fprintf。
格式化運算子欄位
格式化運算子共有六個欄位。以下是詳細資訊
格式化運算子的六個欄位包括識別符號、標誌、欄位寬度、精度、子型別和轉換字元。在這六個欄位中,轉換字元是唯一必須與前面的 % 字元一起使用的引數。
轉換字元
轉換字元指示輸出表示法。它採用單個字元,位於格式說明符的最後。
| 說明符 | 描述 |
|---|---|
| c | 單個字元 (char) |
| d | 十進位制表示法(帶符號) |
| e | 指數表示法(使用小寫 e,例如 3.1415e+00)。 |
| E | 指數表示法(使用大寫 E,例如 3.1415E+00)。 |
| f | 定點表示法。 |
| g | %e 或 %f 中較緊湊的一種。 |
| G | 與 %g 相同。 |
| o | 八進位制表示法(無符號)。 |
| s | 字元向量或字串陣列。 |
| u | 十進位制表示法(無符號)。 |
| x | 十六進位制表示法小寫 (a-f) |
| X | 十六進位制表示法大寫 (A-F) |
這是一個使用轉換字元的示例,它將數字格式化為十六進位制形式。
>> N = 30*ones(1,3);
text_format = sprintf('%X', N)
text_format =
'1E1E1E'
>>
要獲得相同數字的十進位制和定點格式,您可以如下所示在 sprintf 方法中使用 %d 和 %f。
>> N = 30*ones(1,3);
>> text_format = sprintf('%d %f', N)
text_format =
'30 30.00000030 '
>>
子型別
子型別是一個單個字母,它緊跟在轉換字元之前。如果沒有子型別,則 %o、%x、%X 和 %u 等轉換說明符將輸入資料視為整數。
因此,要將輸入資料視為浮點數而不是整數,並將其轉換為八進位制、十進位制或十六進位制,您可以考慮以下子型別說明符
| 說明符 | 描述 |
|---|---|
| b | 對於雙精度浮點值輸入資料。 |
| t | 對於單精度浮點值輸入資料。 |
示例
>> N = 15;
>> text_format = sprintf('%bu', N)
text_format =
'04624633867356078080'
精度
此欄位緊跟在格式化運算子中的句點之後。使用的數字為 0 或正整數。例如 %6.3f,這裡的精度為 3。
示例
>> text_format = sprintf('%.2f', 1500)
text_format =
'1500.00'
>>
欄位寬度
是格式化操作欄位寬度中的正整數,它指示輸出中的位數或字元數。例如 %5.2f,這裡的欄位寬度為 5。
預設情況下,如果欄位寬度大於要顯示的字元數,則會在左側填充空格。
示例 1
>> text_format = sprintf('|%3e|%f|%5f|',[33333 45454 50.12123])
text_format =
'|3.333300e+04|45454.000000|50.121230|'
>>
示例 2
>> text_format = sprintf('%20s', 'Hello world')
text_format =
'Hello world'
>>
標誌
此欄位是可選的,但使用它可以為您的輸出提供其他格式。下表描述了您在格式化過程中可以使用字元。
| 字元 | 描述 | 示例 |
|---|---|---|
| 減號 (-) | 左對齊給定的輸入 | %-3.2d |
| 加號 (+) | 如果是數字,它將在數字輸入資料前面顯示符號 +/-。對於文字輸入,它將右對齊。 | %+3.2d %+3s |
| 空格 | 在給定的輸入前插入空格 | % 3.2f |
| 零 (0) | 在給定的輸入前使用填充 | %03.2f |
| 井號 (#) | 使用此特定數字輸入可以更改:
|
%#3.0f |
示例 1:使用減號 (-)
>> txt_format = sprintf('Example of left-justify: %-12.2f',11.3)
txt_format =
'Example of left-justify: 11.30 '
>>
示例 2:使用加號 (+)
>> text_format = sprintf('plus sign: %+5.2f',12.3)
text_format =
'plus sign: +12.30'
>>
示例 3:使用空格進行填充
>> mytxt = sprintf('Padding with zeroes: %010.2f',5.2)
mytxt =
'Padding with zeroes: 0000005.20'
>>
示例 4:使用零 (0) 進行填充
>> mytxt = sprintf('Padding with zeroes: %010.2f',5.2)
mytxt =
'Padding with zeroes: 0000005.20'
>>
識別符號
識別符號是指給程式碼中的變數、函式或其他元素指定的名稱。在文字格式化方面,識別符號可用於指定應在格式化字串中插入值的位 置。
要在 MATLAB 中的文字格式化中包含識別符號,您可以使用 % 字元後跟一個數字(或可選名稱),該數字指定輸入引數列表中相應引數的位置。
示例
>> a = 'My age is: ';
b = 25;
mystr = sprintf('%s %d', a, b)
mystr =
'My age is: 25'
>>
使用 compose() 方法進行文字格式化
MATLAB 中的 compose() 函式將其第一個引數作為格式說明符字串,並將一個或多個值或變數作為後續引數。它透過用提供的值替換格式說明符中的佔位符來返回格式化字串。
示例
a = 'My age is: ';
b = 25;
mystr = compose('%s %d', a, b)
在 matlab 中執行後,輸出為
>> a = 'My age is: ';
b = 25;
mystr = compose('%s %d', a, b)
mystr =
1×1 cell array
{'My age is: 25'}
>>
使用 num2str() 方法進行文字格式化
MATLAB 中的 num2str() 函式用於將數值轉換為其對應的字串表示形式。它接受一個或多個數值輸入值,並返回這些值的字串表示形式。
num2str 的基本語法為:
str = num2str(value, format)
- 值表示您要轉換為字串的數值或陣列。
- 格式(可選)指定結果字串的格式。它可以是格式說明符,例如整數的 '%d' 或浮點數的 '%0.2f' 等。
示例
pi_value = 3.14159; str = num2str(pi_value, '%0.3f')
在 matlab 中執行後,您將獲得
>> pi_value = 3.14159; str = num2str(pi_value, '%0.3f') str = 3.142 >>
使用 fprintf() 方法進行文字格式化
MATLAB 中的 fprintf() 函式用於將格式化資料寫入檔案或命令視窗。它允許您以靈活且組織有序的方式組合文字和資料。
fprintf() 的基本語法為:
fprintf(format, A1…AN)
- 格式是一個字串,指定輸出的格式。它由靜態文字和格式說明符組成,例如 %s、%d、%f 或 %e,這些說明符表示A中相應資料的佔位符。
- A1..AN是要寫入的資料,可以是標量、向量、矩陣或元胞陣列。
示例
a = 'My age is: ';
b = 25;
fprintf('%s %d', a, b)
在 matlab 中執行後,您將獲得
>> a = 'My age is: ';
b = 25;
fprintf('%s %d', a, b)
My age is: 25
>>