有人知道C中是否已有代码计算两个文件的NCD(标准化压缩距离),或者我需要自己编写代码?提前谢谢!
答案 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
请注意,我尚未查看该工具的许可条款和其他限制。在使用工具或源之前,您可能希望查看它们。