连续分数的Matlab代码

时间:2016-08-23 05:58:27

标签: matlab continued-fractions

我想使用连续分数进行数字水印。我需要使用连续分数的概念来评估数字。 任何人都可以提供连续分数的matlab代码吗?

1 个答案:

答案 0 :(得分:3)

您可以使用rat功能:

>> rat(0.23)

ans =

0 + 1/(4 + 1/(3 + 1/(-8)))

此函数的输出是一个字符串。如果要解析此输出,可以参考this topic

修改

如果您希望在生成的扩展中只有正数,则可以通过编辑rat.m(edit rat.m)来实现此目的。请参阅this topic

基本上,您需要将rat.m的第100行从d = round(x)更改为d = floor(x)。如果您不想更改Matlab源,可以在某处保存新rat.m的副本,如果您愿意,甚至可以更改该函数的名称。

使用修改的大鼠功能:

>> rat(0.23)

ans =

0 + 1/(4 + 1/(2 + 1/(1 + 1/(7))))