我有一个需要你帮助的问题。我有一个像
这样的矢量P=[ -0.0610 0.1219 0.2439 -0.1829 ]
与
类似P =[-242/3969 484/3969 968/3969 -242/1323]
现在我想将P的所有系数转换为整数,这意味着我必须找到P的前导系数c,使得f = P / c的所有元素都是整数 我们可以找到c = -3969 / 242,f是
f=P/c=[1 -2 -4 3]
但是,我不知道如何找到系数c。 matlab有一些功能可以找到吗?非常感谢你
答案 0 :(得分:2)
您可以使用函数rat
近似有理分数:
[N,D] = rat(P)
此处P=N/D
由于@BenVoigt报告的原因,实际示例有点棘手,我们假设您知道N=[-242 484 968 -242]
和D=[3969 3969 3969 1323]
。如果您有Symbolic Math工具箱,可以使用lcm
功能立即解决它。如果你不这样做,你可以做类似的事情:
LCMD=1;
for k=1:numel(D)
LCM=lcm(LCM, D(k));
end
GCDN=gcd(abs(N(1)), abs(N(2)));
for k=1:numel(N)-2
GCDN=gcd(GCDN, abs(N(k+2)));
end
c
将是LCMD/GCDN
。