有人知道C中是否已经有一个代码可以计算两个文件的NCD(标准化压缩距离),还是我需要自己编写代码?提前致谢!
2 回答
我认为没有任何 C 库可以计算 NCD 系列函数或任何类似的函数。您最好的选择可能是执行此操作MATLAB
,然后将其转换m files
为等效C
代码作为mex file
. 或者,您也可以编写自己的代码。
如果您的代码可以在 Linux 系统上运行,那么您可以使用tar
带有-z
option forgzip
和-j
option for the bzip
compression algorithm 的实用程序。要创建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/")
ncd
在 Ubuntu Hardy Heron 下有一个工具叫做。这可能是您正在寻找的东西。更多信息: http: //manpages.ubuntu.com/manpages/hardy/man1/ncd.1.html
编辑:该ncd
程序来自包,您可以从此处libcomplearn
下载此包(源位于名为 的文件夹中): https ://launchpad.net/ubuntu/hardy/+source/libcomplearn/1.1.1-1src
请注意,我没有查看该工具的许可条款和其他限制。在使用该工具或来源之前,您可能需要查看它们。