- 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 End 語句
- 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 - 2D 線性圖
- MATLAB - 3D 圖
- MATLAB - 格式化圖形
- MATLAB - 對數座標軸圖
- MATLAB - 繪製誤差條
- MATLAB - 繪製 3D 等值線
- MATLAB - 極座標圖
- MATLAB - 散點圖
- MATLAB - 繪製表示式或函式
- MATLAB - 繪製矩形
- MATLAB - 繪製頻譜圖
- MATLAB - 繪製網格曲面
- MATLAB - 繪製正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 線性插值
- MATLAB - 2D 陣列插值
- MATLAB - 3D 陣列插值
- MATLAB - 多項式
- MATLAB - 多項式
- MATLAB - 多項式加法
- MATLAB - 多項式乘法
- MATLAB - 多項式除法
- MATLAB - 多項式的導數
- MATLAB - 變換
- MATLAB - 變換
- MATLAB - 拉普拉斯變換
- MATLAB - 拉普拉斯濾波器
- MATLAB - 高斯-拉普拉斯濾波器
- MATLAB - 逆傅立葉變換
- MATLAB - 傅立葉變換
- MATLAB - 快速傅立葉變換
- MATLAB - 2D 逆餘弦變換
- 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 中的函式控制代碼是一種資料型別,用於儲存對函式的引用。使用函式控制代碼允許您間接呼叫函式,而不管它在程式碼中的哪個位置被呼叫。
函式控制代碼的常見應用包括:
- 將函式作為引數傳遞給另一個函式,通常稱為“函式函式”。例如,您可以將函式傳遞給積分和最佳化函式,例如 integral 和 fzero。
- 指定回撥函式,例如用於響應 UI 事件或與資料採集硬體互動的函式。
- 建立對內聯定義函式的控制代碼,而不是像匿名函式那樣將它們儲存在單獨的程式檔案中。
- 啟用從主函式外部呼叫區域性函式。
建立函式控制代碼
在 MATLAB 中建立函式控制代碼是一個基本概念,允許您儲存對函式的引用以供以後使用。當您想將函式作為引數傳遞、使用匿名函式或在程式碼中動態切換不同函式時,這尤其有用。
要建立函式控制代碼,您可以使用 @ 符號後跟函式名稱或匿名函式。以下是如何執行此操作:
使用命名函式
% Define a named function
function result = myFunction(x)
result = x^2;
end
% Create a function handle to myFunction
funcHandle = @myFunction;
在 MATLAB 中,您可以使用 function 關鍵字定義命名函式。此函式 myFunction 接受一個輸入引數 x 並返回 x 的平方。以下是此命名函式的程式碼:
% Define a named function function result = myFunction(x) result = x^2; end
在此示例中,myFunction 計算輸入 x 的平方並將其分配給變數 result。
在 matlab 中,myFunction 函式如下所示:
現在我將建立一個函式控制代碼。要建立對 myFunction 函式的函式控制代碼,您可以使用 @ 符號後跟函式名稱:
% Create a function handle to myFunction funcHandle = @myFunction;
這裡,funcHandle 是一個變數,現在儲存對 myFunction 函式的引用。它可以用來間接呼叫 myFunction。
函式控制代碼在 matlab 命令視窗中建立,如下所示:
如果檢視工作區,funcHandle 將在其中建立,並且它的類為 function_handle。
現在讓我們瞭解如何使用這些函式控制代碼。
使用函式控制代碼
現在您有了函式控制代碼,您可以使用它來呼叫 myFunction 函式。例如:
result = funcHandle(5);
在此程式碼中,funcHandle(5) 使用 x = 5 呼叫 myFunction,結果儲存在變數 result 中。在這種情況下,result 將被分配值 25,因為 myFunction 對輸入進行平方。
在 matlab 命令視窗中執行時,輸出為:
>> funcHandle = @myFunction; >> result = funcHandle(5) result = 25 >>
使用匿名函式
當您需要快速建立簡單、短小的函式時,匿名函式通常更方便:
% Create an anonymous function to square a number funcHandle = @(x) x^2;
您可以如下呼叫函式控制代碼:
result = funcHandle(5)
在 matlab 命令視窗中執行的結果為:
>> funcHandle = @(x) x^2; >> result = funcHandle(5) result = 25 >>
將函式控制代碼作為引數傳遞
函式控制代碼通常用作其他函式的引數,尤其是在您希望對不同資料應用相同操作時:
% Define a custom function that takes a function handle as an argument
function result = applyOperation(func, a, b)
result = func(a, b);
end
% Use applyOperation to apply different operations
add = @(a, b) a + b;
subtract = @(a, b) a - b;
result1 = applyOperation(add, 5, 3); % result1 = 8
result2 = applyOperation(subtract, 5, 3); % result2 = 2
讓我們詳細瞭解以上程式碼。
定義自定義函式
自定義函式讓我們可以在 matlab 中建立如下所示的函式:
- 在上面的函式 applyOperation 中,它接受一個引數 func,這是一個函式控制代碼。
- func 是一個函式控制代碼,表示一個操作(例如,加法或減法)。
- a 和 b 是將對 func 表示的操作執行其上的輸入值。
- result 是將 func 指定的操作應用於 a 和 b 的輸出。
為不同的操作定義函式控制代碼
定義了兩個函式控制代碼 add 和 subtract,分別表示加法和減法運算:
add = @(a, b) a + b; subtract = @(a, b) a - b;
- add 是一個函式控制代碼,它接受兩個輸入 a 和 b 並返回它們的和。
- subtract 是一個函式控制代碼,它接受兩個輸入 a 和 b 並返回它們的差。
使用 applyOperation 應用不同的操作
applyOperation 函式可用於將不同的操作應用於輸入值。
使用 add 函式控制代碼
result1 = applyOperation(add, 5, 3);
使用 subtract 函式控制代碼
result2 = applyOperation(subtract, 5, 3);
在 matlab 命令視窗中執行上述程式碼,輸出為:
>> add = @(a, b) a + b;
subtract = @(a, b) a - b;
>> result1 = applyOperation(add, 5, 3)
result1 =
8
>> result2 = applyOperation(subtract, 5, 3)
result2 =
2