2011-05-24 41 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

請注意,我沒有看看該工具的許可條款和其他限制。您可能需要在使用該工具或來源之前查看它們。