1

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

4

2 回答 2

1

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

如果您的代码可以在 Linux 系统上运行,那么您可以使用tar带有-zoption forgzip-joption for the bzipcompression 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/") 
于 2011-05-24T12:55:44.190 回答
0

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

请注意,我没有查看该工具的许可条款和其他限制。在使用该工具或来源之前,您可能需要查看它们。

于 2011-05-25T16:17:54.333 回答