标准化压缩距离C代码

时间:2011-05-24 12:47:31

标签: c compression distance normalize

有人知道C中是否已有代码计算两个文件的NCD(标准化压缩距离),或者我需要自己编写代码?提前谢谢!

2 个答案:

答案 0 :(得分:1)

我认为没有任何C库来计算NCD系列函数或任何类型的函数。您最好的选择可能是在MATLAB中执行此操作,然后将m files转换为等效的C代码作为mex file。或者,您也可以编写自己的代码。

如果您的代码可以在Linux系统上运行,那么您可以使用tar实用程序-z选项gzip-j选项bzip压缩算法。要创建bzip存档,请使用以下选项:tar -cjf foo.bz2 temp/创建bzip目录的temp/存档,并将输出命名为foo.bz2。要创建gzip已归档文件,请使用以下选项:tar -cjf foo.gzip temp/

要从c程序中调用此代码,可以使用system()命令。此命令将您要调用的任何实用程序(带参数)作为字符串作为输入,并返回指示成功或失败的int。您可以像这样调用它:

int i = system("tar -cjf foo.bz2 temp/") 

答案 1 :(得分:0)

在Ubuntu Hardy Heron下有一个名为ncd的工具。它可能正是你要找的东西。更多信息:http://manpages.ubuntu.com/manpages/hardy/man1/ncd.1.html

编辑: ncd程序来自libcomplearn程序包,您可以从此处下载此程序包(来源位于名为src的文件夹中):https://launchpad.net/ubuntu/hardy/+source/libcomplearn/1.1.1-1

请注意,我尚未查看该工具的许可条款和其他限制。在使用工具或源之前,您可能希望查看它们。