函数核心功能
-
质因数分解(输入为整数)
将正整数分解为质因数的乘积,结果以行向量形式返回。
示例代码: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