-1

我想使用连分数进行数字水印。我需要使用连分数的概念来评估一个数字。谁能提供连分数的matlab代码?

4

1 回答 1

3

您可以使用以下rat功能:

>> rat(0.23)

ans =

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

这个函数的输出是一个字符串。如果要解析这个输出,可以参考这个话题

编辑:

如果您只想在结果展开中包含正数,则可以通过编辑 rat.m ( edit rat.m) 来实现。请参阅本主题

基本上,您需要将 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))))
于 2016-08-23T07:09:50.297 回答