Matlab 如何将向量的所有浮点元素转换为整数元素

Matlab 如何将向量的所有浮点元素转换为整数元素,matlab,Matlab,我有个问题需要你的帮助。我有一个向量,比如 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有没有找到它的功能?非常感谢您可以使用函

我有个问题需要你的帮助。我有一个向量,比如

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有没有找到它的功能?非常感谢

您可以使用函数
rat
近似有理分数:

[N,D] = rat(P)
此处
p=N/D

由于@BenVoigt报告的原因,实际示例有点古怪,所以我们假设您知道
N=[-242 484 968-242]
D=[3969 3969 1323]
。如果您有符号数学工具箱,您可以使用
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

一旦您转换为浮点值,舍入已经发生,现在就来不及准确执行了。感谢Cape代码:我使用了rat函数,如您的建议。然而,如何找到c值。我的目标是将浮点向量P转换为f@user8430哦,我明白了,你想要最小公倍数?对。它是最不常见的倍数。但它是MUPAD中唯一的支持。我正在寻找matlab中的函数。谢谢