-1
我想使用连续分数来进行数字水印。我需要使用连续分数的概念来评估一个数字。 任何人都可以提供持续分数的matlab代码?连续分数的Matlab代码
我想使用连续分数来进行数字水印。我需要使用连续分数的概念来评估一个数字。 任何人都可以提供持续分数的matlab代码?连续分数的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(0.23)
ans =
0 + 1/(4 + 1/(2 + 1/(1 + 1/(7))))
佛山市南海新力:请注意,您可以用'eval'得到这个表达式的结果。不知道'老鼠'... +1 :) –
但老鼠给我的负面价值,我不想。如何避免? – Sanik
添加了一个可能的修复方法以获取正值。 –