2011-05-24 104 views
1

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

回答

1

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

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

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

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

好点谢谢!我的代码应该能够运行在任何机器(Linux,Windows等)..所以我怎么能在我的代码中使用压缩算法(如gzip,zlib,bzip2等)?有什么想法呢? – nomercy 2011-05-24 15:23:32

+1

或kolmogorov复杂性作为压缩机 – nomercy 2011-05-24 15:27:53

+0

@nomercy:请参阅上面编辑的答案。 – Sriram 2011-05-25 05:11:22

0

有一个叫ncd下Ubuntu的哈苍鹭工具。这可能是你正在寻找的东西。进一步的信息:http://manpages.ubuntu.com/manpages/hardy/man1/ncd.1.html

编辑: 的ncd程序来自libcomplearn包,你可以从这里下载这个包(来源是一个名为src文件夹中):https://launchpad.net/ubuntu/hardy/+source/libcomplearn/1.1.1-1

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