函数核心功能
-
质因数分解(输入为整数)
将正整数分解为质因数的乘积,结果以行向量形式返回。
示例代码:n = 60; factors = factor(n) % 对60进行质因数分解
输出:
factors = [2, 2, 3, 5] % 即 2×2×3×5=60
-
多项式因式分解(输入为符号表达式)
对符号多项式进行因式分解,需提前定义符号变量。
示例代码:syms x p = x^2 - 4; % 定义多项式 x²-4 factors = factor(p) % 因式分解
输出:
factors = [x-2, x+2] % 即 (x-2)(x+2)
详细使用场景
场景1:分解大整数
num = 123456789; primeFactors = factor(num); disp(['质因数:', num2str(primeFactors)]); % 输出:质因数:3 3 3607 3803
场景2:分解符号多项式
syms y f = y^3 + 6*y^2 + 11*y + 6; factorized = factor(f) % 输出:(y+1)(y+2)(y+3)
场景3:分解矩阵元素(逐元素操作)
A = [15, 20; 7, 11]; result = arrayfun(@(x) factor(x), A, 'UniformOutput', false); % 查看结果:celldisp(result) % 输出:{ [3,5] }, { [2,2,5] }, { [7] }, { [11] }
注意事项
- 输入限制:
- 整数输入必须为正整数(
n ≥ 2
),负数或小数会报错。 - 多项式需为符号对象(使用
syms
定义变量)。
- 整数输入必须为正整数(
- 输出说明:
- 整数分解结果按升序排列(如
factor(12) = [2,2,3]
)。 - 多项式输出为符号表达式的乘积形式。
- 整数分解结果按升序排列(如
- 特殊值处理:
- 若输入质数(如
factor(17)
),返回自身[17]
。 - 输入
1
会返回空向量[]
。
- 若输入质数(如
常见问题
Q1:为何输入小数会报错?
A:factor
仅支持整数或符号表达式,对小数需先取整:factor(int32(3.14))
。
Q2:如何验证分解结果?
A:对整数用 prod(factors)
检查乘积是否等于原数;对多项式用 expand(factors)
展开验证。
Q3:能否分解负整数?
A:需先取绝对值:factor(abs(-30))
。
- 整数分解 →
factor(n)
(n
为正整数) - 多项式分解 →
factor(sym('表达式'))
- 核心优势:自动识别输入类型,无需额外参数。
引用说明基于MATLAB R2025a官方文档《factor函数说明》,验证环境为MATLAB Online,建议通过
doc factor
命令查看实时文档更新。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7439.html