连续分数的matlab代码
Matlab code for continued fraction
我想使用连分数进行数字水印。我需要使用连分数的概念来评估一个数字。
谁能提供连分数的matlab代码?
您可以使用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 函数:
>> rat(0.23)
ans =
0 + 1/(4 + 1/(2 + 1/(1 + 1/(7))))
我想使用连分数进行数字水印。我需要使用连分数的概念来评估一个数字。 谁能提供连分数的matlab代码?
您可以使用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 函数:
>> rat(0.23)
ans =
0 + 1/(4 + 1/(2 + 1/(1 + 1/(7))))