我想使用连分数进行数字水印。我需要使用连分数的概念来评估一个数字。谁能提供连分数的matlab代码?
问问题
1083 次
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 回答