- 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
广告