- 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 - 對映函式
- MATLAB - 平均值函式
- MATLAB - 結束函式
- 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 - 階乘
非負整數 'n' 的階乘,記為 'n!',定義為從 1 到 'n' 的所有正整數的乘積。因此,在數學上,語法為:
n! = 1 × 2 × 3 × ... × n
例如,5 的階乘將是
5! = 1 × 2 × 3 × 4 × 5 = 120
語法
result = factorial(n)
- 這裡 n 是您想要計算階乘的非負整數。
- Result 將儲存計算出的階乘值。
在數學符號中,n 階乘,記為 n!,通常用感嘆號表示。需要注意的是,在 MATLAB 中,使用 n! 作為計算 n 階乘的語法是無效的。
計算階乘的示例
讓我們看幾個計算給定數字的階乘的示例。
示例 1:計算數字 n 的階乘
要計算 5!,您可以在 MATLAB 中使用 factorial() 函式:
result = factorial(5)
當您在 matlab 命令視窗中執行時,輸出為:
>> result = factorial(5) result = 120
以上程式碼將給出結果:result = 120,因為 5! 等於 120。
示例 2:大數的階乘
MATLAB 甚至可以處理大數的階乘。
n = 20; result = factorial(n)
當您在 matlab 命令視窗中執行相同操作時,輸出為:
>> n = 20; result = factorial(n) result = 2.4329e+18
示例 3:計算陣列的階乘
假設您有一個數組 A,其中包含幾個要計算階乘的值:
A = [3, 4, 5, 6, 7]; result = factorial(A)
輸出為:
result =
6 24 120 720 5040
示例 4:計算陣列的階乘
考慮下面顯示的陣列,我們將為其計算階乘。
num_array = [0 1 2; 3 4 5]; result = factorial(num_array)
執行後,輸出為:
result = 1 1 2 6 24 120
示例 5:無符號整數的階乘
uints = uint64([7 10 15 20]); result = factorial(uints)
所以我們有無符號整數向量 [7 10 15 20]
執行後,輸出為:
result = 5.0400e+03 3.6288e+06 1.3077e+12 2.4329e+18
在 Matlab 中使用函式計算階乘
您可以建立一個 MATLAB 函式來計算數字的階乘。以下是一個簡單的函式來執行此操作:
function fact = factorial_custom(n)
if n < 0
error('Factorial is undefined for negative numbers.');
elseif n == 0 || n == 1
fact = 1;
else
fact = 1;
for i = 2:n
fact = fact * i;
end
end
end
此 factorial_custom 函式接受輸入 n,並使用 for 迴圈計算 n 的階乘。它處理負數併為它們返回錯誤訊息。對於 0 和 1,階乘定義為 1。對於其他正整數,它使用迴圈計算階乘。
您可以在 matlab 中按如下方式執行:
使用 For 迴圈計算階乘
您可以使用 for 迴圈計算階乘,如下所示:
n=6; result = 1; for i = 1:n result = result * i; end
這裡,result 初始化為 1,迴圈將其乘以從 1 到 n 的數字。
當您在 matlab 命令視窗中執行相同操作時:
>> n = 6; result = 1; for i = 1:n result = result * i; end >> result result = 720
使用 While 迴圈計算階乘
階乘也可以用 while 迴圈計算:
n = 6; result = 1; i = 1; while i <= n result = result * i; i = i + 1; end
此程式碼類似於 for 迴圈方法,但使用 while 迴圈代替。
在 matlab 命令視窗中的執行如下所示:
>> n = 6;
result = 1;
i = 1;
while i <= n
result = result * i;
i = i + 1;
end
>> result
result =
720
廣告